
Hibernate框架
深入学习Hibernate框架,掌握Query、Criteria等查询接口、缓存处理、锁机制、转换器、粒度划分、继承映射、一对一、一对多、多对多关联技术
好汉不吃草
Accept your ordinary and try your best to be different.
展开
-
Hibernate配置文件及重要接口的使用
Hibernate配置文件hibernate程序中存在一个hibernate.cfg.xml的文件,该文件就是hibernate的配置文件,主要用于配置数据库的连接、事务管理以及指定Hibernate本身的配置信息和Hibernate映射文件信息。<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-config...原创 2020-04-18 14:09:39 · 287 阅读 · 0 评论 -
模拟Hibernate数据保存操作
模拟Hibernate数据保存操作Hibernate的数据保存是自动进行的,即我们在向数据库保存数据时不需要进行SQL语句的编写,只需要将数据保存在实体类中,通过org.hibernate.Session的save(Object obj)方法即可实现向数据库的保存操作,下面我们来自己模拟Hibernate的这种功能。首先我们自己定义hbm.xml文件的结构:<?xml version=...原创 2020-04-19 18:11:43 · 351 阅读 · 0 评论 -
ThreadLocal类的使用
ThreadLocal类的使用合理的使用ThreadLocal类能避免引用关系的传递,减少程序的代码量,示例如下:public class News { private String title; public String getTitle() { return title; } public void setTitle(String ti...原创 2020-04-20 16:10:11 · 191 阅读 · 0 评论 -
HibernateSessionFactory类解析
HibernateSessionFactory类解析import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hiber...原创 2020-04-20 17:45:44 · 483 阅读 · 1 评论 -
Hibernate基础操作
Hibernate基础操作首先建立一个实体类Dept.java,并建立映射文件,使Hibernate能正常工作。import java.util.Date;import java.util.Objects;public class Dept { private int deptno; private String dname; private String add...原创 2020-05-03 17:07:04 · 218 阅读 · 0 评论 -
Hibernate使用Query查询
面对数据操作中,数据的查询操作永远都是最为复杂的部分,所以如果要进行更加合理的查询操作,那么必须依靠Query接口来实现原创 2020-05-03 18:37:12 · 1056 阅读 · 0 评论 -
Hibernate使用Criteria查询
Hibernate使用Criteria查询Hibernate属于ORMapping映射框架,所有的操作都应该以对象为主进行使用,那么Query的使用就不符合与这种要求了,所以在查询的基础上又扩充了一个基于对象模式的查询接口:Criteria接口,而这个接口的创建依靠Session接口:public Criteria createCriteria(Class persistentClass);...原创 2020-05-04 11:56:56 · 368 阅读 · 0 评论 -
使用Annotation开发Hibernate
使用Annotation开发HibernateHibernate提供有以下注解:注解说明@Entity标识当前类为实体类,使用默认 ORM 规则,即类名映射数据库中对应的表名,属性名映射数据表中列名。@Table如果类名和数据表名不一致,使用 @Table(name = "数据表名")标识当前类对应的数据表名。@Id当前实体类的唯一性标识,通常映射到数据表...原创 2020-05-04 19:17:08 · 193 阅读 · 0 评论 -
Hibernate中POJO类的状态
POJO类所处的状态POJO类所处的状态有三种:瞬时态(Transient):对象保存在内存之中,并没有在数据库之中进行存储。也就是说如果对像一直没有存储,那么就有可能被GC回收,回收之后就象不存在一样。持久态(Persistent):将内存中的对象保存在数据库中,或者某一个对象通过数据库读取,此时的Session如果没有关闭,那么就是持久态。持久态的最大特征是属性的变化将引起数据库的变化...原创 2020-05-05 13:20:34 · 1440 阅读 · 0 评论 -
Hibernate缓存的使用
Hibernate缓存的使用使用缓存能使Hibernate的查询性能获得有效地提升,可以避免数据重复查询带来的性能开销,通过缓存可以实现数据的快速读取,但是并不意味着缓存一定能提升性能,相反,如果处理不当也可能造成致命伤害。在项目开发之中有两种常见的缓存组件:OSCache、EHCache,其中在Hibernate之中主要使用EHCache,之所以使用此组件主要是考虑到简洁问题,在缓存之中至少...原创 2020-05-07 10:45:57 · 424 阅读 · 0 评论 -
Hibernate锁机制
Hibernate锁机制在Hibernate项目中,如果不同的Session读取了同一个数据,并同时对此数据发出更新操作,所以为了保证数据可以正常的同步进行操作,就需要锁这一概念完成。在Hibernate中提供有两种锁的机制:悲观锁(Optimistic):指的是使用数据库中的概念来进行数据的锁定乐观锁(Pessimistic):利用程序的逻辑来实现锁的处理悲观锁悲观锁主要依靠数据...原创 2020-05-08 16:12:44 · 329 阅读 · 0 评论 -
Hibernate转换器
Hibernate转换器转换器的基本概念在org.hibernate.usertype.UserType接口里面定义有如下一组操作方法:原创 2020-05-11 18:15:13 · 527 阅读 · 0 评论 -
Hibernate细粒度划分
概念假如有这样一张数据表DROP TABLE IF EXISTS User;CREATE TABLE USER( uid VARCHAR(20), name VARCHAR(50), age INT, birthday DATE, address VARCHAR(100), zipcode VARCHAR(50), phone VARCHAR(50), CONSTRAIN原创 2020-05-12 16:52:08 · 227 阅读 · 0 评论 -
Hibernate中的容器映射技术
Hibernate中的容器映射技术Hibernate开发主要分为两种模式,一种是基于*.hbm.xml文件的,另一种是基于Annotation的配置,容器映射技术最早出新在Hibernate时期,但是后来JPA标准里面没有定义容器应映射技术的操作,导致现在的开发之中已经很少去使用容器映射了。Hibernate中主要分为三种容器映射:Set容器映射:不能够保存重复数据。List容器映射:可以保存重复数据,但是他为了区分唯一,需要设置一个单独的索引编号。Map容器映射:保存key与value两个数据原创 2020-05-13 18:06:01 · 208 阅读 · 0 评论 -
Hibernate中的继承映射
Hibernate中的UNION-CLASS继承映射在UNION-CLASS中,每一个继承子表对应一个实体类,这种继承关系重点在于程序的维护上,而数据表中依然会有重复数据。【定义数据库脚本】DROP TABLE IF EXISTS原创 2020-05-14 18:00:31 · 335 阅读 · 0 评论 -
Hibernate中的一对一关联技术
Hibernate中的一对一关联技术加入现在有一个用户的注册功能,这个功能可能要涉及到10个字段的填写,那么这个时候如果上来就填写10个信息,那么可能注册的人就少了。现在的开发往往都会提供一个快速注册和一个信息维护。那么这种情况就可以用一对一关系来描述。【定义数据库的创建脚本】DROP TABLE IF EXISTS member_details;DROP TABLE IF EXISTS member_login;CREATE TABLE member_login( mid原创 2020-05-19 09:47:10 · 501 阅读 · 0 评论 -
Hibernate中的一对多关联技术
Hibernate中的一对多关联技术【创建数据库脚本】DROP TABLE IF EXISTS subitem;DROP TABLE IF EXISTS item;CREATE TABLE item( iid INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(50));CREATE TABLE subitem( sid INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(原创 2020-05-21 10:37:47 · 249 阅读 · 0 评论 -
Hibernate中的多对多关联技术
Hibernate中的多对多关联技术多对多是在项目开发中使用比较多的操作情况,例如,在最常见的管理员权限的处理过程之中,一定会存在有管理员的角色以及对应的管理员组,而一个管理员角色可以具备多个管理员组,反之一个管理员组也可以同时被多个管理员角色所使用。在角色和权限组的操作过程中,角色应该作为主控方,所有权限组的维护应该以角色为主。【数据库脚本】DROP TABLE IF EXISTS role_tranches;DROP TABLE IF EXISTS role;DROP TABLE IF EX原创 2020-05-22 17:03:51 · 299 阅读 · 0 评论