创建最简单的hibernate项目

1. 建立JavaWeb项目,导入hibernate相关支持包。

     hibernate核心包:

             hibernate3.jar

      required文件夹下的包:

      antlr-2.7.6.jar                                             HQL转sql支持包

      commons-collections-3.1.jar                      java collecttion的扩展

      dom4j-1.6.1.jar                                              解析xml的支持包

      javassist-3.12.0.GA.jar                                    字节码处理支持包

      jta-1.1.jar                                                      事物支持相关包

      slf4j-api-1.6.1.jar                                            日志支持相关包

      jpa文件夹下的包:

      hibernate-jpa-2.0-api-1.0.0.Final.jar                   映射支持相关包

      数据库连接驱动包:             

                mysql-connector-java-5.1.12-bin.jar

 

2.编写实体类

          比如说创建一个简单的User实体类,类中有id,name,pwd属性                 

3.创建 实体类对应的数据库表

 

4.编写映射文件:实体类名.hbm.xml(文件名必须符合这个规范)

        在hibernate开发包下拷贝*.hbm.xml文件,进行修改。

 1 <?xml version="1.0"?>
 2 <!-- hibernate 映射文件的约束 -->
 3 <!DOCTYPE hibernate-mapping PUBLIC 
 4     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 5     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
 6 
 7 <hibernate-mapping 
 8     package="com.ly.entity">
 9     <!-- 实体类与数据库表进行映射 -->
10     <class name="User"  table="t_user">
11         <!--
12              id标签 作用: 主键映射
13                 将实体类属性id与数据库表字段id进行映射
14                 name属性:实体类属性名
15                 column属性:数据库表字段类型名
16          -->
17         <id name="id" column="id">
18             <!-- 指定主键的生成策略:native,可以让主键以自增长的方式生成值 -->
19             <generator class="native"/>
20         </id>
21         
22         <!-- property标签的作用:非主键映射
23                 将实体类属性与数据库表字段进行映射
24                 
25                 name属性:实体类属性名
26                 column属性:数据库表字段类型名
27          -->
28         <property name="name" column="name"></property>
29         <property name="pwd" column="pwd"></property>
30         
31     </class>
32 
33 
34 </hibernate-mapping>

 

 5. 编写主配置文件 hibernate.cfg.xml(放在src目录下)

  在hibernate开发包下拷贝hibernate.cfg.xml文件,进行修改

 

 1 <?xml version="1.0"?>
 2 <!-- hibernate主配置文件的约束 -->
 3 <!DOCTYPE hibernate-configuration PUBLIC
 4         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 5         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 6 
 7 <hibernate-configuration>
 8     <session-factory>
 9         <!-- 定义数据库的方言,作用:让hibernate生成符合当前数据库语法规定的sql语句 -->
10         <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
11         <!-- 配置数据库的连接信息 -->
12         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
13         <property name="hibernate.connection.username">root</property>
14         <property name="hibernate.connection.password">1</property>
15         <property name="hibernate.connection.url">jdbc:mysql:///hello</property>
16         <property name="javax.persistence.validation.mode">none</property>  
17         <!-- 加载映射文件 -->
18         <mapping resource="com/ly/entity/User.hbm.xml"/>        
19     </session-factory>
20 </hibernate-configuration>

 

6.编写测试代码,

步骤:

      1). 读取配置文件

      2). 创建sessionFactory

      3). 获得session

      4). 开启事务

      5). crud

      6). 提交事务(针对异常出现,可以事务回滚)

      7). 关闭资源

 1 @Test
 2     public void test(){
 3         //1.读取配置文件信息,并创建管理配置文件信息的对象 cfg。
 4         Configuration cfg = new Configuration();
 5         cfg.configure();//默认加载src目录下的主配置文件hibernate.cfg.xml。
 6         
 7         //2.利用管理配置文件信息的对象 cfg来创建SessionFactory对象即会话工厂对象。
 8         SessionFactory sf = cfg.buildSessionFactory();
 9         
10         //3.根据会话工厂对象来创建会话对象session
11         Session session = sf.openSession();
12         
13         //4.开启事物,并得到事物管理对象tx
14         Transaction tx = session.beginTransaction();
15         //5. 对数据的crud操作
16         
17         User user = new User();
18         user.setName("张三");
19         user.setPwd("123");
20         
21         session.save(user);
22         //6.提交事物
23         tx.commit();
24         
25         //7.关闭资源
26         session.close();
27         sf.close();
28         
29     }

 

posted @ 2016-10-20 14:40  CircleLiu  阅读(2688)  评论(0编辑  收藏  举报