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
  • 相关阅读:
    Codeforces 451A Game With Sticks
    POJ 3624 Charm Bracelet
    POJ 2127 Greatest Common Increasing Subsequence
    POJ 1458 Common Subsequence
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1698
    HDU 1754
    POJ 1724
    POJ 1201
    CSUOJ 1256
  • 原文地址:https://www.cnblogs.com/kispine/p/8734940.html
Copyright © 2011-2022 走看看