如果你不明白hibernate的搭建可以参考《Hibernate 学习路程之一(Hibernate 环境的搭建)》
Hibernate主配置文件包含三部分内容 1>连接数据库的信息 2>自己的属性配置 3>映射文件的位置
这三部分内容,在<session-factory>节点下,也就是说这三部分内容主要是为了构造一个 SessionFactory对象。 配置文件的整合
1,完全删除hibernate主配置文件,把hibernate 配置文件的内容(三方面)转移到spring主配置 文件中 2,保留hibernate主配置文件,并用spring配置文件指向hibernate配置文件。
项目上我们一般按照下面的方式
保留hibernate 主配置文件,但把连接数据库的信息转移到spring 配置文件中 第一步:添加 springhibernate Jar 包支持 Jdbc libraries 三个 第二步:注释 hibernte 中连接数据库信息 第三步:spring 配置中添加 dataSource 与 sessionFactory
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <property name="url" value="jdbc:mysql://127.0.0.1:3306"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="configLocation"> <value>file:src/hibernate.cfg.xml</value> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> </props> </property> </bean>hibernate主配置文件中写hibernate的属性配置及其映射文件的信息
<hibernate-configuration> <session-factory> <property name="show_sql">true</property> <mapping resource="com/wfg/pojo/Student.hbm.xml" /> </session-factory> </hibernate-configuration>
第四步: dao extends HibernateDAOSupport
StudentDAO extends HibernateDaoSupport
super.getHibernateTemplate() 有完整的save等方法 Session session = super.getSession();
第五步:spring 配置文件中配置 DAO 类
<bean id="StudentDAO" class="com.wfg.pojo.StudentDAO"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean>
第六步:编写测试类 dao 要通过容器获取
public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); StudentDAO studentDAO = context.getBean(StudentDAO.class); studentDAO.save(new Student("李四", 12, new Timestamp(new Date().getTime()), true, "springhibernat")); }
