建立最简单的hibernate项目

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

     hibernate核心包:java

             hibernate3.jarmysql

      required文件夹下的包:sql

      antlr-2.7.6.jar                                             HQL转sql支持包数据库

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

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

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

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

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

      jpa文件夹下的包:ui

      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     }
相关文章
相关标签/搜索