
Hibernate
文章平均质量分 84
吴声子夜歌
个人学习记录
展开
-
Hibernate框架基础配置
HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet...原创 2019-09-01 23:43:07 · 1049 阅读 · 0 评论 -
Web--使用Ajax与Hibernate完成表单异步校验
前端页面:<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!DOCTYPE html><html><head><meta charset="ISO-8859-1"><title>In...原创 2019-10-04 21:40:57 · 1156 阅读 · 0 评论 -
Hibernate--Configuration、SessionFactory、配置连接池详解
Configuration配置对象:Configuration主要用于Hibernate框架加载映射文件:Configuration类的作用是对Hibernate进行配置,以及对它进行启动。在Hibernate的启动过程中,Configuration类的实例首先定位映射文档的位置,读取这些配置,然后创建一个SessionFactory对象。虽然Configuration类在整个Hibernat...原创 2019-10-06 13:23:42 · 2019 阅读 · 0 评论 -
Hibernate--Session对象及常用API、Transaction对象及API详解
Session:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句)。但需要注意的是**Session是非线程安全的。**同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象成为用...原创 2019-10-06 13:56:35 · 1295 阅读 · 1 评论 -
Hibernate--使用离线查询DetachedCriteria完成对列表的筛选
User表:User类:package pers.zhang.domain;public class User { private Long user_id; private String user_code; private String user_name; private String user_password; private String user_state;...原创 2019-10-06 17:53:43 · 807 阅读 · 0 评论 -
Hibernate--一对多与多对一关系的表达、配置与操作
创建表cst_customer与cst_linkman是一对多关系,cust_id为外键。cst_customer表:cst_linkman表:创建实体类Customer类:public class Customer { //主键 private Long cust_id; private String cust_name; private String cust_so...原创 2019-10-06 19:33:28 · 660 阅读 · 0 评论 -
Hibernate--一对多与多对一关系的级联操作
级联操作级联操作是指当主控方执行保存、更新或者删除操作时,其关联对象(被控方)也执行相同操作。在映射文件中通过对cascade属性的设置来控制是否对关联对象采用级联操作,级联操作对各种关系都是有效的。创建实体类Customer类:public class Customer { //主键 private Long cust_id; private String cust_name;...原创 2019-10-06 21:08:47 · 849 阅读 · 0 评论 -
Hibernate--多对多关系的表达、配置与操作(保存、修改、删除)详解
创建表创建sys_user、sys_role、sys_user_role三张表:创建实体User:public class User { //主键 private Long user_id; private String user_code; private String user_name; private String user_password; private Cha...原创 2019-10-06 21:35:26 · 664 阅读 · 0 评论 -
HIbernate--多对多的级联操作(保存、更新、删除)详解
级联操作多对多的级联操作同一对多和多对一是一样的。如果只保存单独的一方是不可以的,还是需要保存双方的。如果想保存一方就需要设置级联操作。同样需要设置主控方。创建表创建sys_user、sys_role、sys_user_role三张表:创建实体User:public class User { //主键 private Long user_id; private String u...原创 2019-10-06 23:23:13 · 1318 阅读 · 0 评论 -
Hibernate--延迟加载lazy(类级别的延迟加载、关联级别的延迟加载)和抓取策略fetch详解
延迟加载延迟加载(lazy load)是(也成为懒加载)Hibernate关联关系对象默认的加载方式,延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。通常将延迟加载分为两类:**一类叫做类级别延迟,另一个叫做关联级别的延迟。**类级别的延迟指的是查询某个对象的时候,是否采用有延迟,这个通常在< class >标签上...原创 2019-10-07 14:29:58 · 823 阅读 · 0 评论 -
Web--简单实现分页查询
建表及准备数据创建实体类User:package pers.zhang.domain;public class User { private Long user_id; private String user_code; private String user_name; private String user_password; private String user_s...原创 2019-10-04 18:07:18 · 2336 阅读 · 0 评论 -
Hibernate--QBC离线查询举例+详解(二)
离线查询概述DetachedCriteria 翻译为离线条件查询,因为它是可以脱离Session来使用的一种条件查询对象,Criteria对象必须由Session对象来创建。那么也就是说必须先后Session才可以生成Criteria对象。而DetachedCriteria对象可以再其它层对条件进行封装。这个对象也是比较有用的,尤其在SSH整合以后这个对象会经常使用。它的主要优点是做一些特别复...原创 2019-09-07 23:25:49 · 1055 阅读 · 0 评论 -
hibernate中持久化类的编写规则和主键生成策略
hibernate中持久化类的编写规则持久化类需要提供无参数的构造方法。\color{red}{持久化类需要提供无参数的构造方法。}持久化类需要提供无参数的构造方法。因为在Hibernate的底层需要使用反射生成类的实例。持久化的属性需要私有,对私有的属性提供共有的get和set方法。\color{red}{持久化的属性需要私有,对私有的属性提供共有的get和set方法。}持久化的属...原创 2019-09-03 00:00:31 · 980 阅读 · 0 评论 -
HIbernate中持久化对象的三种状态
持久化对象三种状态的概述Hibernate为了更好的来管理持久化类,特将持久化类分成了三种状态。在Hibernate中持久化的对象可以划分为三种状态,分别为瞬时态,持久态和脱管态,一个持久化类的实例可能处于三种不同状态中的某一种,三种状态的详细介绍如下。瞬时态(transient)瞬时态也称为临时态或者自由态,瞬时态的实例是由new命令创建、开辟内存空间的对象,不存在持久化标识OID(相...原创 2019-09-03 16:59:21 · 1474 阅读 · 0 评论 -
HIbernate的一级缓存和快照
什么是Hibernate的一级缓存 Hibernate的一级缓存就是指Session缓存,Session缓存是一块内存空间,用来存放相互管理的java对象,在使用Hibernate查询对象的时候,首先使用对象属性的OID值在Hibernate的一级缓存种进行查找,如果找到匹配OID值的对象,就直接将该对象从一级缓存...原创 2019-09-03 23:42:37 · 1019 阅读 · 0 评论 -
HIbernate中的事务
什么时事务在数据库操作中,一项事务(Transaction)是由一条或多条操作数据库的SQL语句组成的一个不可分割的工作单元。当事务中的所有操作都正常完成时,整个事务才能被提交到数据库中,如果有一项操作没有完成,则整个事务会被回滚。其实事务总结起来理解为:逻辑上的一组操作,组成这组操作的各个单元,要么一起成功,要么一起失败。事务的四个特性事务由很严格的定义,需要同时满足四个特性,即原子性、...原创 2019-09-04 19:28:20 · 2000 阅读 · 1 评论 -
HIbernate--HQL举例+详解(一)
HQLHQL是HIbernate Query Language 的缩写,提供更加丰富灵活、更为强大的查询能力;HQL更接近SQL语句查询语法。Hibernate查询语言(HQL)是一种面向对象的查询语言,类似与SQL,但不是去对表和列进行操作,而是面向对象和它们的属性。HQL查询被Hibernate翻译为传统的SQL查询从而对数据库进行操作。注意:除了Java类与属性名称外,查询语句对大小写...原创 2019-09-04 23:31:49 · 2096 阅读 · 0 评论 -
HIbernate--HQL举例+详解(二)
HQL检索HQL是面向对象的查询语言,它和SQL查询语言有些相似,但它使用的是类、对象和属性的概念,而没有表和字段的概念。在Hibernate提供的各种检索方式中,HQL是官方推荐的查询语言,也是使用最广泛的一种检索方式。它具有如下功能:在查询语句中设定各种查询条件。支持投影查询,即仅检索出对象的部分属性。支持分页查询。支持分组查询,允许使用group by 和 having 关键字...原创 2019-09-05 18:45:36 · 973 阅读 · 0 评论 -
HIbernate--HQL举例+详解(三)
多表查询准备数据增加一个LinkMAN实体类,与Customer形成多对一关系。public class Customer { private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private String cust_...原创 2019-09-05 21:52:13 · 974 阅读 · 0 评论 -
Hibernate--Restrictions详解
方法说明Restrictions.eq=Restrictions.allEq利用Map来进行多个等于的限制Restrictions.gt>Restrictions.ge>=Restrictions.lt<Restrictions.le<=Restrictions.betweenBETWEENRest...转载 2019-09-05 23:59:39 · 1525 阅读 · 0 评论 -
Hibernate--QBC举例+详解(一)
QBC检索QBC(Query By Criteria)是Hibernate提供的另一种检索对象的方式,它主要由Criteria接口、Criterion接口和Expression类组成。Criteria接口是Hibernate API中的一个查询接口,它需要由session进行创建。一个单独的查询就是Criterion接口的一个实例,用于限制Criteria对象的擦查询,在Hibernate中C...原创 2019-09-07 22:05:53 · 1693 阅读 · 0 评论 -
Hibernate--批量抓取batch-size
批量抓取在抓取策略中有一种叫做批量抓取,就是同时查询多个对象的关联对象的时候,可以采用批量抓取进行优化。如果要实现批量抓取效果,可以通过batch-size来完成。创建表cst_customer与cst_linkman是一对多关系,cust_id为外键。cst_customer表:cst_linkman表:创建实体类Customer类:public class Custome...原创 2019-10-07 15:02:35 · 1026 阅读 · 0 评论