Hibernate搭建

第一步 导入hibernate的jar包

 

  首先导入lib目录下required目录中的所有包

  

  再导入jpa目录下的

  

  

  因为使用hibernate时候,有日志信息输出,hibernate本身没有日志输出的jar包,导入其他日志的jar包

不要忘记还有mysql驱动的jar包

  

 

第二步 :创建实体类

 

  

 1 public class User {
 2     
 3     private String uid;
 4     private String username;
 5     private String password;
 6     private String addres;
 7     
 8     public String getUid() {
 9         return uid;
10     }
11     public void setUid(String uid) {
12         this.uid = uid;
13     }
14     public String getUsername() {
15         return username;
16     }
17     public void setUsername(String username) {
18         this.username = username;
19     }
20     public String getPassword() {
21         return password;
22     }
23     public void setPassword(String password) {
24         this.password = password;
25     }
26     public String getAddres() {
27         return addres;
28     }
29     public void setAddres(String addres) {
30         this.addres = addres;
31     }
32 }

  ps:使用hibernate时候,不需要自己手动创建表,hibernate帮把表创建

 

第三步:配置实体类和数据库表一一对应关系(映射关系)

 

   

  使用配置文件实现映射关系

  (1)创建xml格式的配置文件

    - 映射配置文件名称和位置没有固定要求

    - 建议:在实体类所在包里面创建,实体类名称.hbm.xml

  (2)配置是是xml格式,在配置文件中首先引入xml约束

    - 学过约束dtd、schema,在hibernate里面引入的约束dtd约束

  

 

  映射配置xml文件头为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

 

  配置映射关系:

<hibernate-mapping>
    <!-- 1 配置类和表对应 
        class标签
        name属性:实体类全路径
        table属性:数据库表名称
    -->
    <class name="cn.itcast.entity.User" table="t_user">
        <!-- 2 配置实体类id和表id对应 
            hibernate要求实体类有一个属性唯一值
            hibernate要求表有字段作为唯一值
        -->
        <!-- id标签
            name属性:实体类里面id属性名称
            column属性:生成的表字段名称
         -->
        <id name="uid" column="uid">
            <!-- 设置数据库表id增长策略 
                native:生成表id值就是主键自动增长
            -->
            <generator class="native"></generator>
        </id>
        <!-- 配置其他属性和表字段对应 
            name属性:实体类属性名称
            column属性:生成表字段名称
        -->
        <property name="username" column="username"></property>
        <property name="password" column="password"></property>
        <property name="address" column="address"></property>
    </class>
</hibernate-mapping>

 

第四步 创建hibernate的核心配置文件

 

 

  (1)核心配置文件格式xml,但是核心配置文件名称和位置固定的

    - 位置:必须src下面

    - 名称:必须  hibernate.cfg.xml

    

  

  (2)引入dtd约束

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

  

  (3)hibernate操作过程中,只会加载核心配置文件,其他配置文件不会加载

    

    第一部分: 配置数据库信息 必须的

    第二部分: 配置hibernate信息 可选的

    第三部分: 把映射文件放到核心配置文件中

<hibernate-configuration>
    <session-factory>
        <!-- 第一部分: 配置数据库信息 必须的 -->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql:///hibernate</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>
        
        <!-- 第二部分: 配置hibernate信息  可选的-->
        <!-- 输出底层sql语句 -->
        <property name="hibernate.show_sql">true</property>
        <!-- 输出底层sql语句格式 -->
        <property name="hibernate.format_sql">true</property>
        <!-- hibernate帮创建表,需要配置之后 
            update: 如果已经有表,更新,如果没有,创建
        -->
        <property name="hibernate.hbm2ddl.auto">update</property>
        <!-- 配置数据库方言
            在mysql里面实现分页 关键字 limit,只能使用mysql里面
            在oracle数据库,实现分页rownum
            让hibernate框架识别不同数据库的自己特有的语句
         -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        
        <!-- 第三部分: 把映射文件放到核心配置文件中 必须的-->
        <mapping resource="cn/itcast/entity/User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

 

 

五 使用(实现添加操作)

  

  

第一步加载hibernate核心配置文件

 

第二步创建SessionFactory对象

 

第三步使用SessionFactory创建session对象

 

第四步开启事务

 

第五步写具体逻辑 crud操作

 

第六步提交事务

 

第七步关闭资源

public class Htest {
    
    @Test
    void testAdd() throws Exception {
        //        第一步 加载hibernate核心配置文件
        // 到src下面找到名称是hibernate.cfg.xml
        //在hibernate里面封装对象

        Configuration cfg = new Configuration();
        cfg.configure();

        //        第二步 创建SessionFactory对象
        //读取hibernate核心配置文件内容,创建sessionFactory
        //在过程中,根据映射关系,在配置数据库里面把表创建

        SessionFactory sessionFactory = cfg.buildSessionFactory();

        //        第三步 使用SessionFactory创建session对象
        // 类似于连接
                Session session = sessionFactory.openSession();

        //        第四步 开启事务
        Transaction ta = session.beginTransaction();
        
        //        第五步 写具体逻辑 crud操作
        //添加功能
        User user = new User();
        user.setUsername("wm");
        user.setPassword("123qwe");
        user.setAddress("hb");
        //调用session的方法实现添加
        session.save(user);

        //        第六步 提交事务
        ta.commit();

        //        第七步 关闭资源
        session.close();
        sessionFactory.close();
    }
}            

 

posted @ 2018-11-29 01:18  kpsmile  阅读(181)  评论(0编辑  收藏  举报