ORM 对象关系映射
spring提供的一个FactoryBean来获取sessionFactory,具体实现类:LocalSessionFactoryBean将创建一个SessionFactory的代理对象,结合spring的事务控制,获取线程绑定。
p132
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:test">
</property>
<property name="username" value="scott"></property>
<property name="password" value="mb3"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<!--<span style="color:#ff9900;">接管hibernate的映射文件</span>-->
<p align="left"><span style="color:teal;"> <</span><span style="color:#3F7F7F;">property</span> <span style="color:#7F007F;">name</span>=<em><span style="color:#2A00FF;">"</span><span style="color:#ff0000;">mappingResources</span><span style="color:#2A00FF;">"</span></em><span style="color:teal;">></span></p><p align="left"> <span style="color:teal;"><</span><span style="color:#3F7F7F;">list</span><span style="color:teal;">></span></p><p align="left"> <span style="color:teal;"><</span><span style="color:#3F7F7F;">value</span><span style="color:teal;">></span>org/s2ssh1/pojo/Testr.hbm.xml<span style="color:teal;"></</span><span style="color:#3F7F7F;">value</span><span style="color:teal;">></span></p><p align="left"><span style="color:teal;"> </</span><span style="color:#3F7F7F;">list</span><span style="color:teal;">></span></p><p align="left"> <span style="color:teal;"></</span><span style="color:#3F7F7F;">property</span><span style="color:teal;">></span></p><!--<span style="color:#ff9900;">配置hibernate配置文件</span>-->
<property name="<span style="color:#ff0000;">hibernateProperties</span>">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop><span style="font-family: Arial, Helvetica, sans-serif;"> </span>
<span style="white-space:pre"></span><pre name="code" class="html"> <prop key="hibernate.show_sql">
true
</prop>
</props></property></bean>
学习内容:
数据分页
监听
延时加载
事务控制
数据库的事务特点:
原子性:多个数据表进行操作的一段代码构成一个单元,要保证所用的操作成功,事务才能提交,其中一个失败就要撤销操作,回退操作;
一致性:数状态与业务操作一致
隔离性:并发对数据库进行操作时,数据库为每个事务提供隔离空间,和隔离等级,级别越高数据一致性越好而并发性越弱。(同java的锁同步机制)
持久性:只要事务提交成功,数据库必须对其持久化!及时提交后数据库发生异常也要在下次启动时恢复数据!!
数据一致性是事务的终极目标;
数据库对事务控制的支持p150&spring对事务的支持
spring针对不同ORM的事务管理实现类:p155
5种方法配置事务控制
常用xml配置文件和注解配置