Hibernate學習day01-----讓hibernate通過配置自動生成實體類對應的表


 

hibernate是一個輕量級框架,通過ORM思想對數據庫進行CRUD操作。

搭建一個Hibernate項目

1、建立一個普通的Java項目,導入hibernate所需的jar包

2、建立實體類(這里以teacher為例)

package com.hcy.entity;

public class Teacher {
    private Integer id;
    private String name;
    private String gender;
    private String type;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    @Override
    public String toString() {
        return "Teacher [id=" + id + ", name=" + name + ", gender=" + gender + ", type=" + type + "]";
    }
    
}

3、創建與實體類對應的映射配置文件,該映射配置文件的命名一般為   “實體類名.hbm.xml”

這里詳細介紹一下該xml文件內容的詳細介紹

  • 創建一個xml文件
  • 在編寫該xml前需要引入約束條件,這里的約束條件不要求會寫,只要會找就可以了。這個約束在
  • 里面如下圖
  • 復制這段即可。

     

  • 接下來就可以詳細配置實體類與數據庫表中字段的對應關系了,下面是詳細代碼
 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 <hibernate-mapping>
 6     <!-- class標簽里的name表示對應實體類的全類名,table屬性代表要自動生成的數據庫表的名字 -->
 7     <class name="com.hcy.entity.Teacher" table="t_teacher">
 8         <id name="id" column="id">
 9             <!--native由hibernate根據使用的數據庫判斷采用identity,Hilo,sequence其中一種主鍵生成方式 ,靈活性強,推薦使用 -->
10             <generator class="native"></generator>
11         </id>
12         <!-- 這里的name表示實體類對應的普通屬性名(非主鍵),column屬性表示對應數據庫表中的字段名 -->
13         <property name="name" column="name"></property>
14         <property name="gender" column="gender"></property>
15         <property name="type" column="type"></property>
16     </class>
17 </hibernate-mapping>

4、創建hibernate的核心配置文件,該配置文件的命名和所在位置都是固定的。命名必須為hibernate.cfg.xml      所在目錄必須在src目錄下

同樣該配置文件要先引入約束,這個約束也不需要自己寫(會找就可以),該約束在中,復制

這段代碼即可。   下面給出該核心配置文件的詳細代碼,說明會寫在代碼的注釋中

 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-configuration>
 6     <session-factory>
 7     <!--先對數據庫進行配置  -->
 8         <!-- 配置數據庫的驅動信息 -->
 9         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
10         <!--配置數據庫的url地址,這里要注意hibernate只能生成數據庫中的表,所以數據庫我們要自己手動去建立  -->
11         <property name="hibernate.connection.url">jdbc:mysql:///b_hibernate_day01</property>
12         <!-- 配置數據庫的用戶名 -->
13         <property name="hibernate.connection.username">root</property>
14         <!-- 配置數據庫的密碼 -->
15         <property name="hibernate.connection.password">123456</property>
16     <!-- 配置hibernate信息 -->
17         <!-- 顯示底層的sql代碼 -->
18         <property name="hibernate.show_sql">true</property>
19         <!-- 配置底層代碼的輸出格式 -->
20         <property name="hibernate.format_sql">true</property>
21         <!-- 自動生成數據庫中的表 -->
22         <property name="hibernate.hbm2ddl.auto">update</property>
23         <!-- 配置方言 -->
24         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
25     <!--由於hibernate框架只能加載核心配置文件,但是我們也需要實體類與數據庫表的映射文件,所以我們要把這些映射文件引入到核心配置文件中  -->
26     <!-- 引入映射文件 -->
27         <mapping resource="com/hcy/entity/Teacher.hbm.xml"/>
28     </session-factory>
29 </hibernate-configuration>

由於hibernate框架只能幫我們根據配置文件建立數據庫中的表,所以數據庫是需要我們手動去建立的

 

 這樣hibernate基本的架子我們就搭建好了,下面我們寫一個工具類來讓hibernate自動生成一下實體類對應的表

 1 package com.hcy.utils;
 2 
 3 import org.hibernate.SessionFactory;
 4 import org.hibernate.cfg.Configuration;
 5 
 6 public class HibernateUtils {
 7     
 8     static {
 9         //加載核心配置文件
10         Configuration cfg = new Configuration();
11         cfg.configure();
12         //創建SessionFactory,在創建SessionFactory的時候會自動生成表
13         SessionFactory sessionFactory = cfg.buildSessionFactory();
14     }
15     public static void main(String[] args) {
16         
17     }
18 }

運行一下,查看數據庫中是否創建出了我們所配置實體類對應的表,結果如下

 

過幾天將會更新hibernate一對多表,多對多表,及其增刪改查操作的詳細內容

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM