![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Hibernate
Hibernate
pipizhen_
昨日之日不可留。
展开
-
Hibernate中的抓取策略优化
Hibernate中的类加载1、什么是延迟加载?延迟加载:lazy(懒加载)。执行到该行代码的时候,不会发送语句去进行查询,在真正使用这个对象的属性的时候才会发送SQL语句进行查询。2、延迟加载的分类(1)类级别的延迟加载(2)关联级别的延迟加载3、类级别延迟加载(1)类级别的延迟加载指的是通过load方法查询某个对象的时候,是否采用延迟。session.load(Emp.class, 1001);(2)类级别的延迟加载怎么配置?类级别延迟加载,通过该类映射文件中的标签里的属性la原创 2020-09-02 17:44:20 · 91 阅读 · 0 评论 -
Hibernate中的QBC查询方式详解
Hibernate中的QBC查询方式详解QBC:Query By Criteria,条件查询。是一种更加面向对象化的查询的方式。1、QBC简单查询测试代码:package com.pipi.hibernate05;import com.pipi.hibernate04.Dept;import myutils.HibernateUtil;import org.hibernate.Criteria;import org.hibernate.Session;import org.hiber原创 2020-09-02 10:53:09 · 1137 阅读 · 0 评论 -
Hibernate中的HQL查询方式详解
Hibernate中的HQL查询方式详解1、HQL的简单查询测试代码:package com.pipi.hibernate04;import myutils.HibernateUtil;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;import java.util.List;// HQL简单查询,没有条件的查询public class Test03_H原创 2020-09-02 10:38:25 · 508 阅读 · 0 评论 -
Hibernate中的五种查询方式
上篇内容回顾1、表与表之间关系一对多关系:两张表,多的表加外键。多对多关系:三张表,关系表加外键。一对一关系:一张表。两张表,外键唯一,或者主键对应。2、Hibernate中的一对多配置搭建Hibernate基本环境,引入jar包创建表创建实体:一的一方,放的是多的一方的集合多的一方,放的是一的一方的对象创建映射:一的一方,配置set多的一方,配置<many-to-one>编写测试类Hibernate的一对多的操作:级联操作:cascade,用于操作其关联的对象原创 2020-09-01 22:08:49 · 890 阅读 · 0 评论 -
Hibernate中多对多的相关操作
Hibernate中多对多的相关操作1、多对多,级联保存或更新测试代码:package com.pipi.hibernate03;import myutils.HibernateUtil;import org.hibernate.Session;import org.hibernate.Transaction;/* 多对多级联保存或更新 只保存用户,级联保存其关联的角色 需在User.hbm.xml中配置cascade属性值为save-update原创 2020-09-01 11:33:11 · 102 阅读 · 0 评论 -
Hibernate中多对多关系映射的配置
Hibernate中多对多关系映射的配置1、先准备两张数据库表,具有多对多的关系。建表原则:多对多,三张表,关系表两个外键。这里测试用户表t_user,角色表t_role。一个用户可以选多个角色,一个角色可以被多个用户选择。2、创建实体类User类:package com.pipi.hibernate03;import java.util.HashSet;import java.util.Set;// 用户实体类public class User { private L原创 2020-09-01 11:26:35 · 161 阅读 · 0 评论 -
Hibernate中一对多的相关操作
Hibernate中一对多的相关操作什么叫做级联操作?级联操作指的是,操作一个对象的时候,会同时操作其关联的对象。级联是有方向性:操作一的一方的时候,是否操作到多的一方。操作多的一方的时候,是否操作到一的一方。1、级联保存更新测试代码1:package com.pipi.hibernate03;import myutils.HibernateUtil;import org.hibernate.Session;import org.hibernate.Transaction;/*原创 2020-08-31 22:06:14 · 146 阅读 · 0 评论 -
Hibernate中一对多关系的映射配置
上篇内容简单回顾1、Hibernate的持久化类的编写规则(1)无参数构造(2)属性私有(3)属性尽量使用包装类(4)提供一个唯一OID与主键对应(5)不要使用final修饰2、Hibernate的主键生成策略主键分类:自然主键,代理主键。主键生成策略类型:(1)increment(2)identity(3)sequence(4)uuid(5)native(6)assigned(7)foreign3、Hibernate的持久化类的三种状态(1)瞬时态:没有唯一标识OI原创 2020-08-31 21:47:15 · 175 阅读 · 0 评论 -
Hibernate中Query & Criteria & SQLQuery的简单使用
Query & Criteria & SQLQuery的简单使用1、Query使用HQL方式。HQL:Hibernate Query Language,面向对象的查询语言。测试代码:package com.pipi.hibernate02;import com.pipi.hibernate.User;import myutils.HibernateUtil;import org.hibernate.Query;import org.hibernate.Session;i原创 2020-08-30 20:18:56 · 362 阅读 · 0 评论 -
Hibernate中事务的管理
Hibernate中事务的管理1、什么是事务?事务:transaction,指的是业务逻辑的最小单元,由一组DML语句操作,执行要么全部成功,要么全部失败。2、事务的四大特性原子性:事务是业务逻辑的最小单元,不可分割。一致性:事务由一组DML语句操作组成,要么全部执行成功,要么全部失败。隔离性:事务A的执行与事务B隔离,不受其他事务的影响。持久性:事务执行的结果,必须持久化保存到硬盘上的数据库中。3、如果不考虑隔离性,引发的安全问题读的问题:脏读:一个事务读到另一个事务还未提交的数据原创 2020-08-30 18:23:45 · 210 阅读 · 0 评论 -
Hibernate中的一级缓存机制
Hibernate中的一级缓存1、什么是缓存?缓存是一种优化的方式,将数据存入内存中,使用的时候直接从缓存中获取,不用通过存储源。2、Hibernate框架中提供了很多优化手段:缓存、抓取策略。Hibernate中提供了2种缓存机制:一级缓存、二级缓存。一级缓存是Session级别的,自带的。二级缓存是SessionFactory级别的,需要手动去配置。3、什么是Hibernate的一级缓存?Hibernate的一级缓存就是指Session缓存,Session缓存是一块内存空间,用来存放原创 2020-08-30 18:18:46 · 312 阅读 · 0 评论 -
Hibernate中持久化类的三种状态
持久化类的三种状态Hibernate是持久层框架,通过持久化类完成ORM操作。为了更好的管理持久类,将持久类分为三种状态:瞬时态,持久态,托管态。1、瞬时态(transient)瞬时态也被称为临时态或者自由态,瞬时态的实现是由new命令创建,开辟内存空间的对象。不存在持久标识OID(相当于主键),尚未与Hibernate Session关联,在数据库中也没有记录,失去引用后将被JVM回收。瞬时态的对象在内存中是孤立存在的,与数据库中的数据无任何关联,仅是一个信息携带的载体。瞬时态对象:不存在原创 2020-08-30 18:13:48 · 394 阅读 · 0 评论 -
Hibernate中常见的主键生成策略
主键生成策略1、主键的分类:见链接:https://blog.csdn.net/pipizhen_/article/details/107851361主键应该设置,和业务不相关的自然数,不要拿着人员的身份证做主键,拿着银行卡号做主键,因为业务可能会改动,而主键不能随便改。在实际开发中一般不允许用户手动设置主键,一般将主键交给数据库,手动编写程序进行设置。在Hibernate中为了减少主键的编写,提供了很多种主键的生成策略。2、常见的主键生成策略:(1)increment使用Hibernate中原创 2020-08-30 18:07:11 · 982 阅读 · 0 评论 -
Hibernate中持久化类的编写规则
持久化类的编写规则1、持久化类的概述什么是持久化类?持久化:将内存中的一个对象持久化到数据库中的过程。Hibernate就是用来进行持久化操作的框架。持久化类:一个java对象,与数据库中的表建立了映射关系,那么这个类在Hibernate中称为持久化类。持久化类 = java类 + 映射文件。2、持久化类的编写规则(1)对持久化类提供无参数构造方法:Hibernate底层需要使用无参数构造方法,反射生成实例对象。(2)属性封装,对私有属性提供public的setter and gett原创 2020-08-30 17:59:02 · 230 阅读 · 0 评论 -
Hibernate框架中简单的CRUD操作
Hibernate中的CRUD操作因为一个项目中通常只使用一个SessionFactory对象。故写上工具类方法:package myutils;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;public class HibernateUtil { public static final Configuration co原创 2020-08-29 22:33:01 · 1088 阅读 · 0 评论 -
Hibernate框架入门配置
Hibernate框架入门第一章1、Hibernate框架的学习路线第一篇:Hibernate的入门(Hibernate的环境搭建、Hibernate的API、Hibernate的CRUD)。第二篇:Hibernate的一级缓存、其他的API。第三篇:Hibernate的一对多配置、Hibernate的多对多的配置。第四篇:Hibernate的查询方式、抓取策略。2、CRM(1)CRM的概述(了解)(2)什么是CRMCRM(Customer Relationship Managemen原创 2020-08-29 22:15:55 · 162 阅读 · 0 评论