hibernate环境搭建测试的示例分析-创新互联

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

创新互联是一家集网站建设,三门企业网站建设,三门品牌网站建设,网站定制,三门网站建设报价,网络营销,网络优化,三门网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

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

  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 配置如下

<!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 class="increment"></generator> </id> <!-- name:是实体中属性的名称,column:是表中字段的名称,type是数据类型  在这里发现后面的 pass和 address 没有写column和type 如果表字段和实体属性名称一致,可以省略不写 --> <property name="name" column="name" type="java.lang.String"/> <property name="pass"/> <property name="address"/> </class> </hibernate-mapping>

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

    <id name="id">

<generator class="sequence">

<param name="sequence_name">st_id</param>

</generator>

</id>

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

    <id name="id">

    <generator class="identity"></generator>

</id>

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

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

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

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

<id name="id" column="id">

 <generator class="sequence">

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

  <param name="sequence_name">sqs_id</param>

 </generator>

</id>

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

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

新闻标题:hibernate环境搭建测试的示例分析-创新互联
网页地址:https://www.cdcxhl.com/article36/cejjsg.html

成都网站建设公司_创新互联,为您提供外贸建站网站收录ChatGPT网页设计公司搜索引擎优化App设计

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站建设