zoukankan      html  css  js  c++  java
  • 02Hibernate入门

    1. 搭建环境
      1. 导入hibernate所需要的jar包
      2. 创建实体类:javabean
         1 package cn.kispine.entity;
         2 
         3 public class User {
         4     //hibernate中需要实体类中有一个属性值最为唯一值
         5     private int id;
         6     private String username;
         7     private String password;
         8     private String address;
         9     public int getId() {
        10         return id;
        11     }
        12     public void setId(int id) {
        13         this.id = id;
        14     }
        15     public String getUsername() {
        16         return username;
        17     }
        18     public void setUsername(String username) {
        19         this.username = username;
        20     }
        21     public String getPassword() {
        22         return password;
        23     }
        24     public void setPassword(String password) {
        25         this.password = password;
        26     }
        27     public String getAddress() {
        28         return address;
        29     }
        30     public void setAddress(String address) {
        31         this.address = address;
        32     }
        33 }
        View Code
      3. 创建数据库创建表【其实不需要手动创建表,hibernate可以根据配置文件中的对应关系自动创建表】
      4. 配置数据库与实体的类的一一对应关系(映射关系)
          • 使用配置文件实现映射关系
          • 创建xml格式的配置文件【配置文件的名称和位置没有特殊要求,建议:在实体类包下创建,名称为实体类名.hbm.xml】
          • 在xml文件中引入约束
            1 <!DOCTYPE hibernate-mapping PUBLIC 
            2     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
            3     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
          • 配置映射关系
             1 <?xml version="1.0" encoding="UTF-8"?>
             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>
             7     <!-- 1、配置实体类与表对应 -->
             8         <!-- class标签、name属性:实体类的全路径、table属性:数据库表名称 -->
             9     <class name="cn.kispine.entity.User" table="tab_users">
            10         <!--2、配置实体类中的唯一字段id与数据库的id对应 -->
            11             <!-- name属性:实体类中字段名称、column:生产的表的字段名称 -->
            12         <id name="id" column="uid">
            13             <!-- 3、配置数据库表主键的增长策略 :native:自动增长,-->
            14             <generator class="native"></generator>
            15         </id>
            16         
            17         <!-- 4、配置其他属性和字段的对应关系 -->
            18         <property name="username" column="username"></property>
            19         <property name="password" column="password"></property>
            20         <property name="address" column="address"></property>
            21     </class>
            22 </hibernate-mapping>
      5. 创建hibernate核心配置文件【位置必须在src目录下,名称必须为hibernate.cfg.xml】
        • 引入约束
          <!DOCTYPE hibernate-configuration PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
        • hibernate在操作过程中只会加载核心配置文件,其他配置文件不会加载、
           1 <?xml version="1.0" encoding="UTF-8"?>
           2 <!DOCTYPE hibernate-configuration PUBLIC
           3     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
           4     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
           5 <!-- 可参考hibernate.propertities文件 -->
           6 <hibernate-configuration>
           7     <session-factory>
           8         <!-- 1、配置数据库信息 -->
           9         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
          10         <property name="hibernate.connection.url">jdbc:mysql:///hibernate</property>
          11         <property name="hibernate.connection.username">root</property>
          12         <property name="hibernate.connection.password">root</property>
          13         
          14         <!-- 2、配置hibernate信息 可有可无-->
          15         <!-- 是否输出底层sql -->
          16         <property name="hibernate.show_sql">true</property>
          17         <!-- sql语句是否格式化 -->
          18         <property name="hibernate.format_sql">true</property>
          19         <!-- 配置是否自动创建表:update:表如果存在则进行更新,不存在就创建表 -->
          20         <property name="hibernate.hbm2ddl.auto">update</property>
          21         <!-- 配置数据库方言 让hibernate能够识别不同数据库特有的语句 -->
          22         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
          23         
          24         <!-- 3、将映射文件放到核心配置文件中 -->
          25         <mapping resource="cn/kispine/entity/User.hbm.xml"/>
          26     </session-factory>
          27 </hibernate-configuration>
    2. 添加操作实现 
      1. 第一步:加载hibernate核心配置文件
        1 Configuration cfg = new Configuration();
        2 cfg.configure();
      2. 第二步:创建sessionFactory对象
        1 SessionFactory sessionFactory = cfg.buildSessionFactory();
      3. 第三步:使用sessionFactory对象创建session对象
        Session session = sessionFactory.openSession();
      4. 第四步:开启事务
        Transaction tx= session.beginTransaction();
      5. 第五步:写具体逻辑CRUD操作
        1 User user = new User();
        2 user.setAddress("天津市东丽区东五道");
        3 user.setPassword("kispine");
        4 user.setUsername("Kispine");
        5         
        6 session.save(user);
      6. 第六步:提交事务
        1 tx.commit();
      7. 第七步:关闭释放资源
        1 session.close();
        2 sessionFactory.close();
         1 package cn.kispine.test;
         2 
         3 import org.hibernate.Session;
         4 import org.hibernate.SessionFactory;
         5 import org.hibernate.Transaction;
         6 import org.hibernate.cfg.Configuration;
         7 import org.junit.Test;
         8 
         9 import cn.kispine.entity.User;
        10 
        11 public class Demo {
        12     @Test
        13     public void testHibernateAdd() {
        14         //第一步:加载hibernate核心配置文件
        15         Configuration cfg = new Configuration();
        16         cfg.configure();
        17         //第二步:创建sessionFactory对象
        18         SessionFactory sessionFactory = cfg.buildSessionFactory();
        19         //第三步:使用sessionFactory对象创建session对象
        20         Session session = sessionFactory.openSession();
        21         //第四步:开启事务
        22         Transaction tx= session.beginTransaction();
        23         //第五步:写具体逻辑CRUD操作
        24         User user = new User();
        25         user.setAddress("天津市东丽区东五道");
        26         user.setPassword("kispine");
        27         user.setUsername("Kispine");
        28         
        29         session.save(user);
        30         //第六步:提交事务
        31         tx.commit();
        32         //第七步:关闭释放资源
        33         session.close();
        34         sessionFactory.close();
        35     }
        36 }
        View Code
  • 相关阅读:
    mysql 练习题
    mysql 语法
    mysql数据库简单练习(创建表格,增删改查数据)
    dom对象基础
    JS定时器
    JS小测验
    JS事件练习题
    JS事件
    dom对象
    tiles介绍
  • 原文地址:https://www.cnblogs.com/kispine/p/8734940.html
Copyright © 2011-2022 走看看