這篇文章主要介紹了hibernate環(huán)境搭建測試的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),三門企業(yè)網(wǎng)站建設(shè),三門品牌網(wǎng)站建設(shè),網(wǎng)站定制,三門網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,三門網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。真正要掌握,還得需要自己動手,才能豐衣足食。
所需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 配置如下
3. User.hbm.xml配置
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
st_id
3. identity :適用于mysql sqlserver 相當(dāng)于2
4. uuid 生成32位長度全球唯一的字符串,適用于分布式系統(tǒng)中
5. foreign : 專用于1:1 共享主鍵的從表方
6. assigned: 手動指定ID,一般不用
這里值得一提:在使用sequence時,配置文件中寫
這里 name為 sequence_name,但我當(dāng)時配置時候?qū)懙氖莝equence,出了錯。搜了好久,也沒有發(fā)現(xiàn)錯誤,并且別人寫的也是sequence。這里我也沒有去看其他版本,這里我使用是5.2版,可能是版本之間的問題。希望注意下。如果你不知道配置是sequence 還是sequence_name,可以搜當(dāng)前版本的文件 sequence,會有一些文件和文件夾,找里面的配置,看里面寫的是什么。
sqs_id
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“hibernate環(huán)境搭建測試的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。