hibernate
文章平均质量分 70
bruobuqi
每一个不曾起舞的日子,都是对生命的辜负
展开
-
BaseHibernateDao BaseHibernate工具类
/** * Created by 李东 on 2017/10/26. */@Repositorypublic class BaseHibernateDao { private HibernateTemplate hibernateTemplate; private SessionFactory sessionFactory; public SessionFact原创 2018-01-22 11:21:09 · 812 阅读 · 0 评论 -
hibernate 的多表设计 关联关系映射 级联操作
1.1表之间关系存在3种:一对多、多对多、一对一1.1 一对多操作 一个客户有多个订单(即订单的外键和客户主键相关联)直接代码:@Testpublic void TestDemo1(){ Session session= HibernateUtils.openSession(); Transaction transaction= session原创 2018-01-04 15:41:57 · 321 阅读 · 0 评论 -
hibernate PO对象操作
1.1.1 save & persistl save方法:瞬时态 转换 持久态 ,会初始化OID1.执行save方法,立即触发insert语句,从数据库获得主键的值(OID值)2.执行save方法前,设置OID将忽略。3.如果执行查询,session缓存移除了,在执行save方法,将执行insert// save方法,如果保存的对象在保存之前设置了ID.那么该ID也被认为是原创 2018-01-04 15:09:16 · 337 阅读 · 0 评论 -
hibernate一级缓存快照 刷新
快照:与一级缓存一样的存放位置,对一级缓存数据备份。保证数据库的数据与 一级缓存的数据必须一致。如果一级缓存修改了,在执行commit提交时,将自动刷新一级缓存,执行update语句,将一级缓存的数据更新到数据库。1.1.1 refresh 刷新refresh 保证 一级缓存的数据 与 数据库的数据 保持一致。将执行select语句查询数据库,将一级缓存中的数据覆盖掉。原创 2018-01-04 14:38:18 · 519 阅读 · 0 评论 -
hibernate一级缓存的移除
方法//清除1.session.clear();2.session.evict(user);不多说直接代码 @Test//一级缓存的移除 public void TestDemo2(){ Session session= HibernateUtils.openSession(); //开始事物 Transac原创 2018-01-04 14:26:03 · 2500 阅读 · 0 评论 -
关于hibernate的一些学习总结之 缓存篇
1 一级缓存 一级缓存:又称为session级别的缓存。当获得一次会话(session),hibernate在session中创建多个集合(map),用于存放操作数据(PO对象),为程序优化服务,如果之后需要相应的数据,hibernate优先从session缓存中获取,如果有就使用;如果没有再查询数据库。当session关闭时,一级缓存销毁。1.1 证明一级缓存(注意看控制台的sq原创 2018-01-04 14:10:27 · 143 阅读 · 0 评论 -
hibernate 事务
l 事务:一组业务操作,要么全部成功,要么全部不成功。l 特性:ACID原子性:整体一致性:数据隔离性:并发持久性:结果l 隔离问题:脏读:一个事务读到另一个事务未提交的内容不可重复读:一个事务读到另一个事务已提交的内容(insert)虚读(幻读):一个事务读到另一个事务已提交的内容(update)l 隔离级别--解决问题read uncommittd,原创 2018-01-05 17:03:46 · 130 阅读 · 0 评论 -
Hibernate的关联关系映射:(多对多)
1.创建实体//学生类public class Student { private Integer sid; private String sname; // 学生选择多门课程. private Set courses = new HashSet();}//课程类public class Course { private Integer原创 2018-01-05 13:10:58 · 233 阅读 · 0 评论 -
hibernate HQL
1. hsql介绍:1.查询所有客户代码:@Testpublic void TestDemo1(){ Session session= HibernateUtils.openSession(); Transaction transaction= session.beginTransaction(); Query query=session.原创 2018-01-05 15:22:15 · 264 阅读 · 0 评论 -
hibernate 抓取策略(优化)
1.1 检索方式l 立即检索:立即查询,在执行查询语句时,立即查询所有的数据。l 延迟检索:延迟查询,在执行查询语句之后,在需要时在查询。(懒加载)1.2 检查策略l 类级别检索:当前的类的属性获取是否需要延迟。l 关联级别的检索:当前类 关联 另一个类是否需要延迟。1.1 类级别检索l get:立即检索。get方法一执行,立即查询所有字段的数据。原创 2018-01-05 13:21:12 · 311 阅读 · 0 评论