hibernate环境搭建测试的示例分析
admin
2023-04-27 04:41:30
0

真正要掌握,还得需要自己动手,才能丰衣足食。

  1. 所需jar包

    jar包版本不同,找的地址也不同。这里用到的是 hibernate-release-5.2.10 版本的jar包


    hibernate环境搭建测试的示例分析

除了这些jar包,还需要数据库驱动jar,根据自己用的数据库自定,这里用到的是oracle

hibernate环境搭建测试的示例分析  

2.jar包导入好,看看配置,在配置之前,看下实体和表结构。

实体 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 + "]";
	}
	
}

表结构

hibernate环境搭建测试的示例分析

在src下 hibernate.cfg.xml配置,如果不知道里面的配置怎么写。可以通过在下载的jar包中搜索hibernate.cfg.xml,里面有配置信息。

hibernate.cfg.xml 配置如下




    
        oracle.jdbc.OracleDriver
        ssh
        ssh
        jdbc:oracle:thin:@127.0.0.1:1521:xe
        
        
        org.hibernate.dialect.Oracle10gDialect
        
        true
        
        true
        
        
        
    

3. User.hbm.xml配置




	
	
	
		
			
			
		

		
		
		
		
	

4.测试数据连接是否配置成功

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);
		//关闭资源
		session.close();
	}
	// 在进行增删改时 ,好控制事务    ---- 插入
	@Test
	public void insert(){
		Session session = getSession();
		// 开启事务
		Transaction tx = session.beginTransaction();
		Users users = new Users(null, "xyz", "xyz", "china");
		// 插入
		session.save(users);
		// 事务提交
		tx.commit();
		// 事务回滚
		//tx.rollback();
		session.close();
	}
	// 更新数据前   需要先查询出修改的数据
	@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();
	}
	// 删除  需要先出现出删除的数据
	@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();
	}
	
}

这里讲解下关于hibernate中主键的生成策略

  1. increment 一般用于测试,多并发环境中存在主键取值冲突,这里文章包括下面写的都是用的

  这个,方便测试。实际项目中,没有人会用到。

2. sequence  oralcle数据库专用

在oracle数据库中创建序列 : create sequence st_id start with 7 increment by 1;

 意思是:创建序列名为 st_id 从7开始,每次增加1

 hibernate中默认值是 hibernate_sequence

    

st_id

3. identity :适用于mysql sqlserver 相当于2

    

    

4. uuid 生成32位长度全球唯一的字符串,适用于分布式系统中

5. foreign : 专用于1:1 共享主键的从表方 

6. assigned: 手动指定ID,一般不用

这里值得一提:在使用sequence时,配置文件中写

 

   这里 name为 sequence_name,但我当时配置时候写的是sequence,出了错。搜了好久,也没有发现错误,并且别人写的也是sequence。这里我也没有去看其他版本,这里我使用是5.2版,可能是版本之间的问题。希望注意下。如果你不知道配置是sequence 还是sequence_name,可以搜当前版本的文件 sequence,会有一些文件和文件夹,找里面的配置,看里面写的是什么。

   sqs_id

 

相关内容

热门资讯

工作时间减少1%,肥胖率或下降... 澎湃新闻记者 季敬杰合理调整生活与工作的平衡可能会给健康带来意想不到的好处。近日一项研究指出,年度工...
美媒:中美元首会晤或讨论AI护... 据凤凰卫视援引美国媒体报道,美方希望借中美领导人会晤的机会,开启有关人工智能安全与管控的对话,并推动...
卫生间水管布置图尺寸高度 卫生间的水管布置可能比较复杂一些,因为卫生间的管道比较多。比如有热水器的通水管道,有座便器的冲水管道...
电脑尺寸在哪里看 电脑尺寸在哪里看1、可以选择手工测量法来测量电脑尺寸,这时测量一下屏幕对角线,因为显示面积都会小于显...
电脑机箱尺寸标准 常规的机箱一般是立体式,或桌面式,再就是横式。电脑机箱尺寸,目前市面上根据不同的规格有不同的方案。 ...
斯塔默发声:不会辞职 【环球时报驻英国特约记者 纪双城 环球时报特约记者 甄翔 于文】执政党工党在英国地方选举中遭遇“历史...
抽油烟机管道有异味怎么办 抽油烟机是厨房中不可或缺的设备,它能有效地排出油烟,保证室内空气的清新。但是,长时间使用后,抽油烟机...
抽油烟机管道有油垢怎么办 抽油烟机管道是我们家庭生活中必不可少的设备,但长时间的使用会导致管道内部积累大量的油垢,如不及时清理...
沈伯洋与台北市长格局有落差,叶... 海峡导报综合报道 民进党将正式拍板征召民代沈伯洋出战台北市长,并发布采访通知,预计在13日下午举行台...
核查:上世纪已有多款汉坦疫苗上... 明查员 冯梦速览- 人类感染汉坦病毒已有数十年历史。朝鲜战争期间,联合国军就曾有过大规模感染。汉坦病...