随笔分类 - hibernate
摘要:事务 JDBCTransaction 单个数据库(一个SesisonFactory对应一个数据库),由JDBC实现。 Session session = null; Transaction tx =null; try { session = sessionFactory.openSession();
阅读全文
摘要:缓存 缓存的作用主要用来提高性能,可以简单的理解成一个Map;使用缓存涉及到三个操作:把数据放入缓存、从缓存中获取数据、删除缓存中的无效数据。 原理模拟分析:(不能运行,只是模拟)(缓存实现复杂,hibernate运用了第三方框架实现) package com.dzq.test; import ja
阅读全文
摘要:懒加载 通过asm和cglib二个包实现;Domain是非final的。 1.session.load懒加载。 2.one-to-one(元素)懒加载: 必需同时满足下面三个条件时才能实现懒加载 (主表不能有constrained=true,所以主表没有懒加载) lazy!=false 2)cons
阅读全文
摘要:今天在学习hibernate时,出现了以下错误: 错误分析: 如果我们取单个对象可以用get方法没有问题;但是如果我们取的的对象还有关联对象时用get就有问题,因为它不会把关联的对象取出来 参考博客: 使劲点我呀 使劲点我呀 懒加载原理: 能够懒加载的对象都是被改写过的代理对象,当相关联的sessi
阅读全文
摘要:继承映射 对象模型(Java类结构) 一个类继承体系一张表(subclass)(表结构) 1、一个类继承体系一张表(subclass)(映射文件) <class name="Employee" table="employee" discriminator-value="0"> <id name="i
阅读全文
摘要:集合映射 集合映射(set, list, array,bag, map) <set name=”employees” > <key column=”depart_id”/> <one-to-many class=”Employee”/> <!-- <element type="string" col
阅读全文
摘要:关联映射 多对一(Employee - Department) 一对多(Department-Employee) 一对一(Person - IDCard) 多对多(teacher - student) 组件映射(User-Name) 集合映射(set, list, map, bag) inverse
阅读全文
摘要:HQL和Criteria HQL(Hibernate Query Language) 面向对象的查询语言,与SQL不同,HQL中的对象名是区分大小写的(除了JAVA类和属性其他部分不区分大小写);HQL中查的是对象而不是和表,并且支持多态;HQL主要通过Query来操作,Query的创建方式: Qu
阅读全文
摘要:基本概念和CURD 开发流程 1由Domain object -> mapping->db。(官方推荐) 2由DB开始,用工具生成mapping和Domain object。(使用较多) 3由映射文件开始。 Domain Object限制 1.默认的构造方法(必须的)。 2有无意义的标示符id(主键
阅读全文
摘要:关系型数据库与面向对象 模型不匹配(阻抗不匹配) Java面向对象语言,对象模型,其主要概念有:继承、关联、多态等;数据库是关系模型,其主要概念有:表、主键、外键等。 解决办法: 1使用JDBC手工转换。 2使用ORM(Object Relation Mapping对象关系映射)框架来解决,主流的O
阅读全文