Hibernate:5.8.0java
MySQL:8.0.21mysql
項目結構:解壓縮hibernate壓縮包以後,相關jar包目錄以下,將目錄下的全部jar包導入到項目中(導入的位置不固定,能夠本身建立一個文件夾用來存放導入的jar包)
除此以外還須要導入的jar包sql
1). 鏈接MySQL的jar包
2). javaee-api-7.0.jar數據庫
當導入的jar包顯示以下時:api
此時只是將jar包複製到了項目中,但沒有將jar包添加到構建路徑中,繼續執行操做session
選中全部jar包,右擊選擇Build Path選擇Add to Build Path,導入成功後顯示以下:app
1)實體類映射文件User.hbm.xmlide
文件名不固定,能夠隨便命名,位置固定測試
<?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><!-- name是實體類路徑(包名.類名) table是數據表名稱 --><class name="user.User" table="user_info"><!-- 實體類中要有一個惟一屬性 數據表中也要有一個惟一列 --><!-- name表示實體類中的惟一屬性 column表示數據表中的惟一列 --><!-- name表示實體類中的屬性名 colum表示數據表的列名 能夠省略 默認和name相同 --><id name="Id" column="Id"><!-- 設置數據表的Id爲主鍵 自動增加 --><generator class="native"></generator></id><!-- 配置實體類中的其餘屬性和數據表的映射 --><!-- name表示實體類中的屬性名 colum表示數據表的列名 能夠省略 默認和name相同 --><property name="Name" column="Name"></property><property name="Age" column="Age"></property><property name="Address" column="Address"></property></class></hibernate-mapping>
配置的所有都是實體類中屬性的映射ui
2)hibernate核心配置文件hibernate.cfg.xml
文件名固定,位置固定
<?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"><hibernate-configuration><session-factory><!-- 1.配置數據庫信息 必須配置--><!-- 數據庫驅動 --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><!-- 數據庫url --><property name="hibernate.connection.url">jdbc:mysql:///hibernate?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai</property><!-- 數據庫用戶名 --><property name="hibernate.connection.username">root</property><!-- 數據庫密碼 --><property name="hibernate.connection.password">root</property><!-- 2.配置hibernate信息 可選 --><!-- 輸出底層SQL語句 --><property name="hibernate.show_sql">true</property><!-- 格式化SQL語句 --><property name="hibernate.format_sql"></property><!-- 自動建立表 --><!-- update : 若是已經有相同名稱的表則更新 若沒有則建立 --><property name="hibernate.hbm2ddl.auto">update</property><!-- 配置方言 識別不一樣數據庫關鍵字 --><property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property><!-- 3.添加映射文件 必須配置--><mapping resource="user/User.hbm.xml"/></session-factory></hibernate-configuration>
package user;public class User {private int Id;private String Name;private int Age;private String Address;public int getId() {return Id;}public void setId(int id) { Id = id;}public String getName() {return Name;}public void setName(String name) { Name = name;}public int getAge() {return Age;}public void setAge(int age) { Age = age;}public String getAddress() {return Address;}public void setAddress(String address) { Address = address;}}
package hibernate;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import user.User;public class HibernateDemo {public static void main(String[] args) {// 1.建立configuration對象// 獲取src目錄下的核心配置文件hibernate.cfg.xml 將文件放到建立的configuration對象中 也能夠歸納爲 加載核心配置文件// 獲取的核心配置文件是固定的 若是核心配置文件名稱與要求的不一致 則沒法獲取 Configuration configuration = new Configuration().configure();// 2.建立sessionFactory對象// 讀取映射文件和實體類 並建立數據庫 SessionFactory sessionFactory = configuration.buildSessionFactory();// 3.建立session對象// 執行SQL的增刪改查 Session session = sessionFactory.openSession();// 4.開啓事務// 獲取事務對象 能夠提交事務或回滾事務 org.hibernate.Transaction tx = session.beginTransaction();// 5.數據庫操做// 經過操做實體類來改變數據庫中的值// 添加數據 User user = new User();// 由於Id列爲自動增加 因此能夠不用添加 user.setName("王五"); user.setAge(17); user.setAddress("東北");// 調用session的save方法實現添加 session.save(user);// 6.提交事務 tx.commit();// 7.關閉資源 session.close(); sessionFactory.close();}}
若是核心配置文件中配置了自動建立表,那在執行測試類以前只須要建立好數據庫就能夠,在執行時,hibernate會爲你自動建立指定的表
我將hibernate壓縮文件和所須要的jar包整理了下放到這,有須要的能夠去取hibernate壓縮文件及相關jar包獲取地址:https://pan.baidu.com/s/18NhE-EnPMrpIgNr8JnK8zg提取碼:pk6w