zoukankan      html  css  js  c++  java
  • 将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的方式创建会话工厂。

  • 相关阅读:
    一些特效,不断更新
    关于cin输入字符串
    开辟二维数组
    c++ 有关webBrowser控件的一些整理
    WebBrowser 常用方法
    WebRequest和WebBrowser同时登陆,使用同一个sessionID
    delphi 编写的com 对象 用php调用的实例
    Two math problems in http://projecteureka.org sumitted by me.
    delphi dll 实例 与 dll窗体实例
    SSH酒店点菜系统笔记
  • 原文地址:https://www.cnblogs.com/CooderIsCool/p/4721021.html
Copyright © 2011-2022 走看看