Spring中Hibernate配置笔记

ApplicatonContext.xml中的配置:

 	<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/global/ds" />

	<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
			<property name="configLocation">
				<value>classpath:hibernate/hibernate.cfg.xml</value>
			</property>
			<property name="dataSource">
				<ref bean="dataSource" />
			</property>
	</bean>

	<bean id="hibernateTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    	<property name="dataSource">
    		<ref bean="dataSource" />
    	</property>
    	<property name="sessionFactory">
    		<ref bean="sessionFactory" />
    	</property>
    </bean>

	<bean id="transactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
		   <property name="transactionManager" ref="hibernateTransactionManager"/>
		   <property name="transactionAttributes">
		     <props>
		     	<prop key="insert*">PROPAGATION_REQUIRED</prop>
		     	<prop key="save*">PROPAGATION_REQUIRED</prop>
		     	<prop key="update*">PROPAGATION_REQUIRED</prop>
		     	<prop key="delete*">PROPAGATION_REQUIRED</prop>
		        <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
		     </props>
		   </property>
	</bean>

	<bean id="myHibernateManage" parent="transactionProxy">
		<property name="target">
			<bean id="hibernateManage" class="com.web.dao.hibernate.MyHibernateManage">
				<property name="sessionFactory">
					<ref bean="sessionFactory" />
				</property>
			</bean>
		</property>
		<property name="proxyTargetClass">
			<value>true</value>
		</property>
	</bean>

主要Hibernate操作对象Session

还需hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

        <!-- Database connection settings -->
         <!--
        <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1/test</property>
        <property name="hibernate.connection.username">test</property>
        <property name="hibernate.connection.password">test</property>
		 -->
        <!-- JDBC connection pool (use the built-in) -->
        <!--
        <property name="hibernate.connection.pool_size">5</property>
		 -->
        <!-- SQL dialect -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>

        <!-- Enable Hibernate's automatic session context management -->
        <property name="hibernate.current_session_context_class">thread</property>

        <!-- Disable the second-level cache  -->
        <property name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
		<!--
		<property name="hibernate.cache.use_query_cache">true</property>
		-->
        <!-- Echo all executed SQL to stdout -->
        <property name="hibernate.show_sql">true</property>
		<property name="hibernate.format_sql">true</property>
		<property name="hibernate.generate_statistics">true</property>
		<!-- Mapping -->
        <mapping resource="com/web/dao/hibernate/entity/TestTable.hbm.xml"/>

    </session-factory>

</hibernate-configuration>

具体配置说明参考hibernate API,configuration章节

映射文件配置也参考hibernate API,Persistence Object章节

HQL语法提要:

14.6. The select clause

The select clause picks which objects and properties to return in the query result set. Consider:

select mate
from Cat as cat
    inner join cat.mate as mate

The query will select mates of other Cats. Actually, you may express this query more compactly as:

select cat.mate from Cat cat

Queries may return properties of any value type including properties of component type:

select cat.name from DomesticCat cat
where cat.name like ‘fri%‘
select cust.name.firstName from Customer as cust

Queries may return multiple objects and/or properties as an array of type Object[],

select mother, offspr, mate.name
from DomesticCat as mother
    inner join mother.mate as mate
    left outer join mother.kittens as offspr

or as a List,

select new list(mother, offspr, mate.name)
from DomesticCat as mother
    inner join mother.mate as mate
    left outer join mother.kittens as offspr

or as an actual typesafe Java object,

select new Family(mother, mate, offspr)
from DomesticCat as mother
    join mother.mate as mate
    left join mother.kittens as offspr

assuming that the class Family has an appropriate
constructor.

You may assign aliases to selected expressions using as:

select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n
from Cat cat

This is most useful when used together with select new map:

select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n )
from Cat cat

This query returns a Map from aliases to selected values.

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-06 09:43:40

Spring中Hibernate配置笔记的相关文章

c3p0在spring中的配置

在大家的开发和学习当中应该经常用到数据库的连接和使用,不过连接 的方式就有很多种方式了,比方说用最最简单的JDBC 也好,还有用比 较复杂一点的就是数据库连接池,当然还有使用DBCP的连接的,各种方 法有各种方法的优势面和缺点,这据需要我们根据具体情况具体分析了 ,比方说要是一个并不是很大的项目的话,而且 使用的硬件机器的性 能也不是非常好的话,估计就没有必要使用数据库连接池了,毕竟连接 池平时总是管理着连接, 就会极大的占用这机器的运行性能和效率. (这里的C3P0的使用是基于Spring框架

javaEE中的hibernate配置笔记

0 从web.xml出发 项目中用Spring整合Hibernate,Spring贯穿整个项目,所以先看看Spring在哪一步整合了Hibernate.先看部分web.xml. 在context-param设定参数contextConfigLocation. 在listener配置基于Web上下文级别的监听器ContextLoaderListener,它会加载contextConfigLocation中的配置文件. 其中最重要的是spring-hibernate.xml,这里面配置了hibern

Velocity初探小结--Velocity在spring中的配置和使用

最近正在做的项目前端使用了Velocity进行View层的数据渲染,之前没有接触过,草草过了一遍,就上手开始写,现在又回头细致的看了一遍,做个笔记. velocity是一种基于java的模板引擎技术,有点类似与JSP,它允许页面设计者引用Java中定义的方法.前端页面设计者和后端Java开发者能够同时使用MVC的模式开发网站,这样前端能够把精力放在页面的设计上,后端也可以把精力放在代码开发上.Velocity把Java代码从Web页面中分离, 使网站可维护性更强. 注:项目使用的是Spring+

Spring+Struts2/Hibernate 学习笔记

=========自动装配========= autowire - 指定自动装配策略 byName 如果是byName的自动装配策略,Spring会负责把setter方法名对应 的Bean注入 如果没有找到,就不执行注入(即不调用这个setter方法) byType Spring会负责把容器类型为setter方法形参类型的Bean注入进来 如果没有找到,就不执行注入(即不调用这个setter方法) 如果找到了多个Bean,那就报错了,出现异常 autowire-candidate-true/fa

Spring+Hibernate整合配置 --- 比较完整的spring、hibernate 配置

Spring+Hibernate整合配置 分类: J2EE2010-11-25 17:21 16667人阅读 评论(1) 收藏 举报 springhibernateclassactionservletmysql 在公司一直没有什么机会直接折腾SSH“原生态”的SSH当今比较流行的轻量级的框架,用着公司的框架也是郁闷异常,今天没事整整原来用过的一个项目的配置,发现就算是自己曾经用过的东西,如果较长时间不返过去重新学习,许多你半熟不熟的知识就是异常陌生.下面贴上我的一些配置,暂且权当备份吧. web

使用Spring为Hibernate配置声明式事物

从AOP的角度看,事物跟日志一样,都是跟业务逻辑无关的东西,这两个东西通过切入方式,放到系统中,是非常合适的.下面,将Hibernate中的事物配置到Spring中,使我们在编程的时候,无需考虑事物的存在,专心的放到系统的逻辑实现上. 在Spring的配置文件中加入如下配置: <!-- 配置sessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate

spring-logger spring中日志配置

默认日志 Logback:默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台.在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了. 从上图可以看到,日志输出内容元素具体如下: 时间日期:精确到毫秒日志级别:ERROR, WARN, INFO, DEBUG or TRACE进程ID分隔符:— 标识实际日志的开始线程名:方括号括起来(可能会截断控制台输出)Logger名:通常使用源代码的类名日志内容添加日志依赖假如maven依赖中添加了spr

spring + springMVC +hibernate 配置2

这种方式比较精简 配置项不多 spring采用自动扫描配置 ,分spring_springMVC.xml  . hibernate_config.xml 两个文件 web.xml配置如下 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.o

spring中xml配置和autowired混用

1.类的混用: 配置文件中的配置: <bean id="a" class="com.ab.cc.A" /> 类中的配置 @Autowired A a; 这样的好处,可以少掉get/set方法 [email protected]和@Resource的区别 Autowired默认是根据byType自动装配,所以有多个类型的xml或者注解某个类的时候,会报错,这时候可以再添加@Qualifier注解,指定名称.这个是spring自带的,换框架的时候,要spri