
Hibernate
C8WATER
这个作者很懒,什么都没留下…
展开
-
Hibernate框架简介④
Hibernate的关联映射:多对一关联映射:第一步: 创建实体模型Emp类:package com.rl.hiber.model;import java.util.Date;public class Emp { private Integer empNo; private String ename; private Date...原创 2018-08-11 19:58:08 · 217 阅读 · 0 评论 -
Hibernate注解开发之类级别的注解
Hibernate的注解类别可以分为类级别的注解属性级别的注解 关联映射的注解首先介绍类级别的注解@Entity(映射实体类注解) @Entity(name = "数据库中的表的名称") name: 可选, 对应数据库中的一张表, 若表名和实体类名相同, 则可以省略. 在使用@Entity时需要指定主键属性例子:配置文件hiberna...原创 2019-01-03 14:01:37 · 438 阅读 · 0 评论 -
Hibernate注解开发之关联映射的注解
回顾Hibernate注解开发之类级别的注解Hibernate注解开发之属性级别的注解1. 一对一单向外键关联Students04@Entitypublic class Students04 implements Serializable { @Id //设置为主键 @GeneratedValue(strategy = GenerationType.IDE...原创 2019-01-05 09:43:44 · 868 阅读 · 0 评论 -
Hibernate框架之查询缓存
一级缓存跟二级缓存都只能缓存实体对象, 而查询缓存可以缓存基本属性, 同时查询缓存也可以缓存实体对象, 但是只能缓存其id查询缓存的生命周期是: 一旦数据库表的数据发生修改, 则查询缓存则被清掉了直接使用Hibernate框架提供的查询缓存即可第一步: 开启查询缓存总开关"hibernate.cfg.xml"配置文件:<!-- 手动开启查询缓存 --> ...原创 2018-09-22 22:20:57 · 1248 阅读 · 0 评论 -
Hibernate框架之二级缓存
二级缓存是SessionFactory级别的缓存, 是一种进程级别的缓存, 这个缓存可以跨session生命周期跟SessionFactory周期一样, 如果关闭SessionFactory, 则二级缓存消失二级缓存跟一级缓存的相同点在于同样只能缓存实体对象而不能缓存属性适合使用二级缓存:数据比较少改动(经常被读, 很少修改)数据不是很重要, 只是偶尔的并发参考数据不适...原创 2018-09-22 21:38:37 · 285 阅读 · 0 评论 -
Hibernate框架之一级缓存
一级缓存:一级缓存不能跨session, 只能缓存实体对象, 不能缓存属性 package com.rl.hiber.test;import java.util.Date;import java.util.Iterator;import java.util.List;import org.hibernate.Query;import org.hibernate.Sess...原创 2018-09-22 16:40:17 · 198 阅读 · 0 评论 -
Hibernate框架之抓取策略
抓取策略是表与表之间的关联之间才能体现出来的, 这里介绍一对多跟多对一的情况, 因为多对多可以看成是两个一对多, 一对一也是一对多里面的一种特殊情况多对一的单端抓取:"Emp.hbm.xml"配置文件:<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibe...原创 2018-09-18 18:05:19 · 255 阅读 · 0 评论 -
Hibernate的并发控制
①悲观锁悲观锁是数据库的机制, 并不是Hibernate框架提供的, 例如: select * from item for update, 此时数据库就被上锁了, A在查询时, B是不能查询的, 是被阻塞在外面的新建一个Item类:package com.rl.hiber.model;public class Item { private Integer itemId;...原创 2018-09-18 06:26:20 · 520 阅读 · 0 评论 -
Hibernate框架继承映射之表的继承
继承映射: 类有继承的概念, 表是没有继承的概念的, 但是可以体现这种关系首先, 新建三个类, 分别是Animal类/Pig类/Bird类, 它们之间的关系是Pig类继承Animal类/Bird类继承Animal类, 然后建立映射关系工程结构如图:①单表继承映射(缺点: 出现冗余字段)将这些属性存储在一张表中:anId anName gender weig...原创 2018-09-16 09:50:51 · 274 阅读 · 0 评论 -
Hibernate框架简介①
这个Hibernate框架系列是使用配置文件的方式来搭建的(非注解方式)搭建环境:引包: 链接:https://pan.baidu.com/s/1tqCg1HYwQaW86HDW6s2rLg 密码:upj1 创建实体类User:package com.rl.hiber.model;import java.util.Date;public class User { ...原创 2018-08-09 23:24:48 · 306 阅读 · 0 评论 -
Hibernate框架简介②
模型类的规范:1 必须有默认构造方法, 查询时把数据表中的一条数据映射成一个对象时需要使用默认构造器来创建对象2 必须提供一个OID, 作为对象的主键(就是userId了)3 属性必须私有化封装, 就是提供set跟get方法4 不要使用final来修饰模型类中的成员, 如果是final修饰在后续要讲到的延迟加载无法实现5 最好使用封装类, 基本类型 int 默认值是...原创 2018-08-10 14:14:32 · 305 阅读 · 0 评论 -
Hibernate框架简介③
数据库的事务的隔离级别:序列化读(Serializable): 级别最高, 最安全, 但效率最低, A事务没有提交或回滚之前, 其他事务不能操作A正在操作的数据不可提交读(read-uncommitted): 简单理解就是事务在没有提交的情况下读取数据. 脏读: A事务读取数据时, B事务在修改数据但还没提交, A事务再次读取该数据时能够读取到B事务修改的数据 不可...原创 2018-08-10 23:20:17 · 239 阅读 · 0 评论 -
Hibernate框架简介⑤
HQL查询hql语句中没有*的写法:测试代码:package com.rl.hiber.test.hql;import java.util.Date;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.Transaction;...原创 2018-08-11 23:56:37 · 527 阅读 · 0 评论 -
Hibernate注解开发之属性级别的注解
回顾Hibernate注解开发之类级别的注解属性级别注解@Id 必须, 表示映射到数据库表中的主键的属性, 一个实体类可以有一个或多个属性被映射为主键, 可置于主键属性或者getXxx()方法上 如果一个类中有多个属性被定义为主键, 则该实体类必须实现Serializable接口@GeneratedValue(strategy = "") ① stra...原创 2019-01-04 14:35:16 · 507 阅读 · 0 评论