共計 4430 個字符,預(yù)計需要花費 12 分鐘才能閱讀完成。
這篇文章主要介紹了 hibernate 環(huán)境搭建測試的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
真正要掌握,還得需要自己動手,才能豐衣足食。
所需 jar 包
jar 包版本不同, 找的地址也不同。這里用到的是 hibernate-release-5.2.10 版本的 jar 包
除了這些 jar 包,還需要數(shù)據(jù)庫驅(qū)動 jar, 根據(jù)自己用的數(shù)據(jù)庫自定,這里用到的是 oracle
2.jar 包導(dǎo)入好,看看配置,在配置之前,看下實體和表結(jié)構(gòu)。
實體 Users
package com.hib.entity;
public class Users {
private Integer id;
private String name;
private String pass;
private String address;
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 getPass() {
return pass;
public void setPass(String pass) {
this.pass = pass;
public String getAddress() {
return address;
public void setAddress(String address) {
this.address = address;
public Users(Integer id, String name, String pass, String address) {super();
this.id = id;
this.name = name;
this.pass = pass;
this.address = address;
public Users() {super();
@Override
public String toString() {return Users [id= + id + , name= + name + , pass= + pass + , address= + address + ]
}
表結(jié)構(gòu)
在 src 下 hibernate.cfg.xml 配置,如果不知道里面的配置怎么寫。可以通過在下載的 jar 包中搜索 hibernate.cfg.xml,里面有配置信息。
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-configuration
session-factory
property name= hibernate.connection.driver_class oracle.jdbc.OracleDriver /property
property name= hibernate.connection.username ssh /property
property name= hibernate.connection.password ssh /property
property name= hibernate.connection.url jdbc:oracle:thin:@127.0.0.1:1521:xe /property
!-- 方言 --
property name= hibernate.dialect org.hibernate.dialect.Oracle10gDialect /property
!-- 可視化 sql --
property name= hibernate.show_sql true /property
!-- 格式化 sql,自動對可視化 sql 換行, 對齊 --
property name= hibernate.format_sql true /property
!-- 映射文件配置 --
mapping resource= User.hbm.xml /
/session-factory
/hibernate-configuration
3. User.hbm.xml 配置
?xml version= 1.0 encoding= UTF-8 ?
!DOCTYPE hibernate-mapping PUBLIC -//Hibernate/Hibernate Mapping DTD 3.0//EN
http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd
hibernate-mapping
!-- name: 是實體 table 是表名稱 --
class name= com.hib.entity.Users table= TEST_USER
id name= id
!-- 主鍵自增策略, 在下面會專門提到 --
generator >4. 測試數(shù)據(jù)連接是否配置成功
package com.hib.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import com.hib.entity.Users;
public class TestConn {
// 獲取 session
public static Session getSession(){
// 加載配置
Configuration cfg = new Configuration().configure();
// 獲取 sessionFactory
SessionFactory factory = cfg.buildSessionFactory();
// 獲取 session
Session session = factory.openSession();
return session;
// 查詢
@Test
public void query(){Session session = getSession();
// 查詢
Users users = session.get(Users.class, 1);
System.out.println(users);
// 關(guān)閉資源
session.close();
// 在進(jìn)行增刪改時 ,好控制事務(wù) ---- 插入
@Test
public void insert(){Session session = getSession();
// 開啟事務(wù)
Transaction tx = session.beginTransaction();
Users users = new Users(null, xyz , xyz , china
// 插入
session.save(users);
// 事務(wù)提交
tx.commit();
// 事務(wù)回滾
//tx.rollback();
session.close();
// 更新數(shù)據(jù)前 需要先查詢出修改的數(shù)據(jù)
@Test
public void update(){Session session = getSession();
Transaction tx = session.beginTransaction();
Users users = session.get(Users.class, 1);
users.setAddress( 鄭州
users.setName( 小李飛刀
session.update(users);
tx.commit();
session.close();
// 刪除 需要先出現(xiàn)出刪除的數(shù)據(jù)
@Test
public void delete(){Session session = getSession();
Transaction tx = session.beginTransaction();
Users users = session.get(Users.class, 1);
session.delete(users);
tx.commit();
session.close();}
這里講解下關(guān)于 hibernate 中主鍵的生成策略
increment 一般用于測試, 多并發(fā)環(huán)境中存在主鍵取值沖突,這里文章包括下面寫的都是用的
這個,方便測試。實際項目中,沒有人會用到。
2. sequence oralcle 數(shù)據(jù)庫專用
在 oracle 數(shù)據(jù)庫中創(chuàng)建序列:create sequence st_id start with 7 increment by 1;
意思是:創(chuàng)建序列名為 st_id 從 7 開始,每次增加 1
hibernate 中默認(rèn)值是 hibernate_sequence
id name= id
generator >
param name= sequence_name st_id /param
/generator
/id
3. identity : 適用于 mysql sqlserver 相當(dāng)于 2
id name= id
generator >
/id
4. uuid 生成 32 位長度全球唯一的字符串, 適用于分布式系統(tǒng)中
5. foreign : 專用于 1:1 共享主鍵的從表方
6. assigned: 手動指定 ID, 一般不用
這里值得一提:在使用 sequence 時, 配置文件中寫
id name= id column= id
generator >
這里 name 為 sequence_name, 但我當(dāng)時配置時候?qū)懙氖?sequence, 出了錯。搜了好久,也沒有發(fā)現(xiàn)錯誤,并且別人寫的也是 sequence。這里我也沒有去看其他版本,這里我使用是 5.2 版,可能是版本之間的問題。希望注意下。如果你不知道配置是 sequence 還是 sequence_name,可以搜當(dāng)前版本的文件 sequence,會有一些文件和文件夾,找里面的配置,看里面寫的是什么。
param name= sequence_name sqs_id /param
/generator
/id
感謝你能夠認(rèn)真閱讀完這篇文章,希望丸趣 TV 小編分享的“hibernate 環(huán)境搭建測試的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關(guān)注丸趣 TV 行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!