久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

hibernate環(huán)境搭建測試的示例分析

172次閱讀
沒有評論

共計 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í)!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-20發(fā)表,共計4430字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 建湖县| 新源县| 泾阳县| 灵武市| 洛川县| 普定县| 临漳县| 台安县| 时尚| 洱源县| 海南省| 吴旗县| 永清县| 剑阁县| 运城市| 烟台市| 拉孜县| 大同市| 福鼎市| 嘉禾县| 民丰县| 临洮县| 丰镇市| 大同市| 丰县| 三明市| 汝南县| 获嘉县| 辰溪县| 平阳县| 浦城县| 阿拉善右旗| 礼泉县| 中方县| 延寿县| 栾川县| 石河子市| 临城县| 含山县| 乌什县| 连云港市|