首页 > 代码库 > Hibernate_简单实用流程

Hibernate_简单实用流程

Hibernate:
    使用步骤:
        将\hibernate-release\lib\required添置构建路径
        将sqljdbc添加构建路径
        在src下创建hibernate.cfg.xml(有模板)在hibernate开发包下
            hibernate-release-4.3.6.Final\project\documentation\src\main\
                docbook\quickstart\tutorials\basic\src\test\resources下面的hibernate.cfg.xml作例子
                主要有如下四部分配置 :
                (1)与DB的连接
                (2)可选配置
                (3)资源文件注册
                (4)二级缓存
            示例如下:

 1 <?xml version=‘1.0‘ encoding=‘gb2312‘?> 2 <!DOCTYPE hibernate-configuration PUBLIC 3         "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 4         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 5 <hibernate-configuration> 6     <session-factory> 7         <!--显示执行的SQL语句--> 8         <property name="show_sql">true</property> 9         <!--连接地址-->10         <property name="connection.url">jdbc:sqlserver://127.0.0.1:1433;DatabaseName=hibernate</property>11         <property name="connection.username">sa</property><!--连接数据库的用户名-->12         <property name="connection.password">ea1111111111_</property><!--数据库用户密码-->13         14         <!--数据库驱动-->15         <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>16         <!--JDBC连接池(使用内置的连接池)-->17         <property name="connection.pool_size">1</property>18         <!--设置Hibernate自动管理上下文的策略-->19         <property name="current_session_context_class">thread</property>20         <!--选择使用的方言-->21         <property name="dialect">org.hibernate.dialect.SQLServer2005Dialect</property>22         <!--在启动时删除并重新创建数据库-->23         <property name="hbm2ddl.auto">create</property>24         25         <mapping resource="com/base/model/Student.hbm.xml"/>    26     </session-factory>27 </hibernate-configuration>

 




            修改数据库连接地址,用户名,密码,与使用的方言
        创建model层
        创建model映射配置文件**.hbm.xml
            1:与被描述的类同名 ,如:UserModel.hbm.xml
            2:存放位置与所描述类存放在同一文件夹下
            3:主要有如下四部分配置 :
            (1)类和表的映射
            (2)主键的映射
            (3)类的属性和DB中字段的映射
            (4)关系的映射
        在hibernate开发包下:hibernate-release-4.3.6.Final\project\documentation\src\main\
            docbook\quickstart\tutorials\basic\src\test\java\org\hibernate\tutorial\hbm
            下面的Event.hbm.xml作例子
        示例如下:

 1 <?xml version="1.0"?> 2 <!DOCTYPE hibernate-mapping PUBLIC 3         "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4         "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 5  6 <hibernate-mapping package="org.hibernate.tutorial.hbm">    <!-- 包名 --> 7  8     <class name="Event" table="EVENTS">    <!-- 类名与对应的数据表名 --> 9         <id name="id" column="EVENT_ID">    <!-- 设置主键, 对应model与数据库中名称 -->10             <generator class="increment"/>    <!-- 设置自增-->11         </id>12         <property name="date" type="timestamp" column="EVENT_DATE"/>  <!--普通字段  -->13         <property name="title"/>         14     </class>15 16 </hibernate-mapping>

 



        测试类: test

 1 public class StudentTest { 2  3     /** 4      * @param args 5      */ 6     public static void main(String[] args) { 7         // TODO 自动生成的方法存根 8         Configuration configuration = new Configuration();     //实例化配置文件 9         ServiceRegistry serviceRegistry =         //实例化服务登记10             new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();11             //applySettings(12             //configuration.getProperties()).build();13 //        SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);    //获取session工厂(出错,原因未明)14 15         SessionFactory sessionFactory = null;          //获取session工厂16         final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();  17             try {  18                 sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();  19             } catch (Throwable ex) {  20                 // Log the exception.   21                 System.err.println("对不起数据工厂构建失败." + ex);  22                 throw new ExceptionInInitializerError(ex);  23             }  24         25         26         //只有通过session才能进行对象的操作, 获得持久化27         Session session = sessionFactory.openSession();    //生成一个新的session28         session.beginTransaction();    //开启事物29 30         Student s = new Student();        //创建一个学生31         s.setName("张三");            //设置名称32         session.save(s);              //保存学生33         ...34 35         session.getTransaction().commit();    //提交事务36         session.close();    //关闭session37         sessionFactory.close();    //关闭session工厂38     }39 }

 

Hibernate_简单实用流程