千家信息网

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

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章主要介绍了hibernate环境搭建测试的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。真正要掌握,还得需要自己动手,
千家信息网最后更新 2024年11月28日hibernate环境搭建测试的示例分析

这篇文章主要介绍了hibernate环境搭建测试的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

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

  1. 所需jar包

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


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

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

表结构

在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

感谢你能够认真阅读完这篇文章,希望小编分享的"hibernate环境搭建测试的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0