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一對多表,多對多表,及其增刪改查操作的詳細內容