【Hibernate学习笔记-3】在Spring下整合Hibernate时, 关于sessionFactory的类型的说明

摘要



在Spring下整合Hibernate时,关于sessionFactory的配置方式主要有两种,分别为注解配置方式,和xml配置方式,下面将对这两种配置方式进行介绍。

1. sessionFactory和数据库对应,有多少个数据库,就需要配置多少个sessionFactory;

2. session相当于数据库连接,进行数据库的CRUD操作时,需要开启session,用完需要关闭session;

3. 配置sessionFactory,主要要配置如下三个方面:

3.1. 数据源配置;

3.2. Hibernate属性配置;

3.3. 映射文件配置;

(3.4  一般还需要进行事务配置)



关于sessionFactory的类型



Hibernate映射文件可以有两种方式:1. @注释 和  2.xml配置文件;

使用两种不同方式配置时,sessionFactory的类型不同,具体如下:

@注释方式:

org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean

XML文件方式:

org.springframework.orm.hibernate3.LocalSessionFactoryBean

见程序:(applicationContext-xxx.xml)

XML方式


  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
  5. <bean id="sessionFactory"
  6. class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  7. <property name="dataSource">
  8. <ref bean="dataSource" />
  9. </property>
  10. <property name="hibernateProperties">
  11. <props>
  12. <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
  13. <prop key="connection.pool_size">100</prop>
  14. <prop key="hibernate.jdbc.batch_size">100</prop>
  15. <prop key="hibernate.show_sql">false</prop>
  16. <prop key="hibernate.default_schema">${hibernate.default_schema}</prop>
  17. <省略...>
  18. </props>
  19. </property>
  20. <property name="mappingDirectoryLocations">
  21. <list>
  22. <value>classpath:/config/hibernate-config-sql2000</value>
  23. </list>
  24. </property>
  25. </bean>
  26. </beans>

@注解方式


  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
  5. <bean id="sessionFactory"
  6. class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  7. <property name="dataSource">
  8. <ref bean="dataSource" />
  9. </property>
  10. <property name="hibernateProperties">
  11. <props>
  12. <!-- 此处ORACLE与SQL数据库应该区别 -->
  13. <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
  14. <!-- <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop> -->
  15. <prop key="connection.pool_size">100</prop>
  16. <prop key="hibernate.jdbc.batch_size">100</prop>
  17. <prop key="hibernate.show_sql">true</prop>
  18. <prop key="hibernate.default_schema">${hibernate.default_schema}</prop>
  19. <省略...>
  20. </props>
  21. </property>
  22. <!--
  23. <property name="mappingResources">
  24. <list>
  25. <value>hibernate-config/DistrictArea.hbm.xml</value>
  26. </list>
  27. </property>
  28. -->
  29. <property name="mappingDirectoryLocations">
  30. <list>
  31. <value>classpath:/config/hibernate-config</value>
  32. </list>
  33. </property>
  34. </bean>
  35. <bean id="transactionManager"
  36. class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  37. <property name="sessionFactory" ref="sessionFactory" />
  38. </bean>
  39. </beans>

来自为知笔记(Wiz)

时间: 2024-11-14 08:49:35

【Hibernate学习笔记-3】在Spring下整合Hibernate时, 关于sessionFactory的类型的说明的相关文章

Mybatis学习笔记-Mybatis与Spring的整合

项目结构 User.java实体类 public class User implements Serializable{ private static final long serialVersionUID = 1L; private int id; private String username; private int age; private String sex; //... } UserMapper接口 public interface UserMapper { public void

hibernate学习笔记之三(一级缓存的使用和管理)

(hibernate学习笔记系列来自于 "疯狂Java" Hibernate视频学习) 一级缓存 一级缓存生命周期很短,与session生命周期一致,所以一级缓存也叫session级缓存或事务级缓存.位于缓存中的对象处于持久化状态,它与表中的相关记录对应,session能够在某些时间点,按照缓存中持久化对象的属性来同步数据库中表的记录,这一过程称为清理缓存. 一级缓存实现原理. session缓存是由它的实现类sessionImpl中定义的一些集合属性构成的,原理是保证有一个引用在关联

hibernate学习笔记之四(Hibernate中的类型)

(hibernate学习笔记系列来自于 "疯狂Java" Hibernate视频学习) Hibernate中的类型 在*.hbm.xml文件中,<property name="password" column="t_pass">,hibernate根据type转换将java转换成hibernate类型,然后再转换成SQL类型,<property name="password" type="...&q

hibernate学习笔记之三(单条记录的增删改查)

(hibernate学习笔记系列来自于 "疯狂Java" Hibernate视频学习) 保存用户 session.save(person); session.persist(person); 查询用户 load(Class theClass,Serializable id) get(Class theClass,Serializable id) 修改用户 session.update(person) session.merger(person); 保存或修改用户 session.sav

《Spring学习笔记》:Spring、Hibernate、struts2的整合(以例子来慢慢讲解,篇幅较长)

<Spring学习笔记>:Spring.Hibernate.struts2的整合(以例子来慢慢讲解,篇幅较长) 最近在看马士兵老师的关于Spring方面的视频,讲解的挺好的,到了Spring.Hibernate.struts2整合这里,由于是以例子的形式来对Spring+Hibernate+struts2这3大框架进行整合,因此,自己还跟着写代码的过程中,发现还是遇到了很多问题,因此,就记录下. 特此说明:本篇博文完全参考于马士兵老师的<Spring视频教程>. 本篇博文均以如下这

《Hibernate学习笔记十一》:树状结构设计

<Hibernate学习笔记十一>:树状结构设计 这是马士兵老师讲解Hibernate的一个作业题,树状结构设计,这是一个比较典型的例子,因此有必要写篇博文记录下. 树状结构的设计,它是在同一个类中使用了多对一(ManyToOne)和一对多(OneToMany). 在完成这个题目我们应该按照如下的步骤进行: 1.先思考数据库的模型应该是什么样的?? 数据库中的模型应该如下:即存在id p_id 2.思考面向对象的模型,及如何来进行映射??? 根据数据库中表的特点,对象应该有id name;由于

《Hibernate学习笔记八》:组件映射

<Hibernate学习笔记八>:组件映射 前面介绍了一对一的单向.双向外键关联,例如,学生证和学生是一个一对一的关系.这篇博文主要是介绍下组件映射,即一个是另一个的一部分,例如,学生证的信息也可以作为学生信息的一部分,即在数据库中只存在学生一个表,而不是有学生和学生证两个表,并且这两个表中有一个一对一的关联关系. 如下: 有人或许会说,那我们就将学生和学生证的信息写在一个类中,则就不需要组件映射了,确实可以这样,但是,根据类的设计原则,我们一般都会将其设计为两个类,然后将学生证的信息作为一个

Hibernate学习笔记:第一个程序的搭建

Hibernate学习笔记:第一个程序的搭建 前一段时间对Struts2这个框架有了一点点地了解,很高兴,自己开始学习Hibernate这个框架了.本篇博文将记录下第一个Hibernate程序的搭建过程.其实有时候个人觉得无论我们学习什么语言也好,还是学习什么框架也好,第一个HelloWorld程序真的相当重要,假如 我们在学习第一个HelloWorld程序都跑不出来,这完全影响着我们对新接触的东西的兴趣和动力,但是,往往第一个程序都会涉及到很多的配置,因此使得对于初学者要摸索一定的时间,对于我

Hibernate学习笔记(3)

两年前曾经学习过Hibernate,也通过博客将Hibernate的学习过程记录下来了,地址如下: Hibernate学习笔记(1) Hibernate学习笔记(2) 最近在复习Hibernate,在重新学习的过程中,有了一些新的体会和收获,现在将其总结成博客,供以后作为参考资料使用. 一.导入相应的jar包 目前Hibernate更新到了4.x版本,在官网下载后,找到lib文件加中的required文件夹,此外还需要额外导入log4j和数据库驱动包. 二.创建Hibernate配置文件 在sr