将hibernate框架融入到spring框架中

第一步:首先创建表:

create table  user( id int(2) primary key,name varchar(20),password varchar(20));

第二步:建立domain:

(1)package com.hsp.domain;

/**
 * User entity. @author MyEclipse Persistence Tools
 */

public class User implements java.io.Serializable {

 // Fields

 private Integer id;
 private String name;
 private String password;

 // Constructors

 /** default constructor */
 public User() {
 }

 /** full constructor */
 public User(String name, String password) {
  this.name = name;
  this.password = password;
 }

 // Property accessors

 public Integer getId() {
  return this.id;
 }

 public void setId(Integer id) {
  this.id = id;
 }

 public String getName() {
  return this.name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public String getPassword() {
  return this.password;
 }

 public void setPassword(String password) {
  this.password = password;
 }

}

(2)User.hbm.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.hsp.domain.User" table="user" catalog="students">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="increment" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="name" length="20" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="password" length="20" />
        </property>
    </class>
</hibernate-mapping>

第三步:在spring中创建数据源以及会话工厂,当然以bean的方式:

<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
     <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
     <property name="url" value="jdbc:mysql://127.0.0.1:3306/students"/>
     <property name="username" value="root"/>
     <property name="password" value="123456"/>
      <!-- 连接池启动时的初始值 -->
  <property name="initialSize" value="30"/>
   <!-- 连接池的最大值 -->
   <property name="maxActive" value="500"/>
   <!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
  <property name="maxIdle" value="2"/>
  <!--  最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
  <property name="minIdle" value="1"/>
</bean>
<!-- 配置会话工厂() -->
<bean id="sessionFactory"  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
     <!-- 设置数据源 -->
     <property name="dataSource" ref="dataSource"/>
     <!-- 接管了hibernate对象映射文件 -->
     <property name="mappingResources">
     <list>
       <value>com/hsp/domain/User.hbm.xml</value>
     </list>
     </property>
     <property name="hibernateProperties">
     <value>
          hibernate.dialect=org.hibernate.dialect.MySQLDialect
          hibernate.hbm2ddl.auto=update
    hibernate.show_sql=true
    hibernate.cache.use_second_level_cache=true
             hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
             hibernate.generate_statistics=true      
  </value>
    </property>
</bean>

代替了传统的方法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">

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

 <session-factory>
  <property name="dialect">
   org.hibernate.dialect.MySQLDialect
  </property>
  <property name="connection.url">
   jdbc:mysql://127.0.0.1:3306/students
  </property>
  <property name="connection.username">root</property>
  <property name="connection.password">123456</property>
  <property name="connection.driver_class">
   com.mysql.jdbc.Driver
  </property>
  <property name="myeclipse.connection.profile">
   wj_mysql
  </property>
  <mapping resource="com/hsp/domain/User.hbm.xml" />
  <mapping resource="com/hsp/domain/Student.hbm.xml" />

 </session-factory>

</hibernate-configuration>

然后在类中使用ApplicationContext导入hibernate.cfg.xml的方式创建会话工厂。

原文地址:https://www.cnblogs.com/CooderIsCool/p/4721021.html