随笔分类 - 框架学习之Hibernate
框架学习之Spring 第五节 SSH整合开发[Spring2.5+Hibernate3.3+Struts2]
摘要:1.首先整合Spring和Hibernate ①引入jar包: hibernate核心安装包下的: hibernate3.jar lib\required\*.jar lib\optional\ehcache-1.2.3.jar hibernate 注解安装包下的 lib\test\slf4j-log4j12.jar Spring安装包下的: dist\spring.jar ...
阅读全文
Hibernate最佳实践
摘要:设计细颗粒度的持久类并且使用<component>来实现映射。 使用一个Address持久类来封装 street, suburb, state, postcode. 这将有利于代码重用和简化代码重构(refactoring)的工作。 对持久类声明标识符属性。 Hibernate中标识符属性是可选的,不过有很多原因来说明你应该使用标识符属性。我们建议标识符应该是“人造”的(自动生成,不涉及业务含义)...
阅读全文
框架学习之Hibernate 第十一节 Hibernate知识补充
摘要:1.配置文件 hibernate.cfg.xml 参见官方文档 2.映射文件 hbm.xml 参见官方文档 重点:主键生成方式 native:根据使用的数据库来确定id的生成方式 如果是插入操作的话,在插入之前就会对数据库进行一次访问来生成下一个id,然后才插入,也就是插入了之后才知道id hilo:高低位方式,一部分是数据库生成的,另一部分是程序生成的,可以保证是不会重复的,这种方...
阅读全文
框架学习之Hibernate 第十节 事务原理与分析
摘要:1.事务 两种事务: ① JDBC事务:单个数据库的事务 一个SesisonFactory对应一个数据库,使用 JDBC 实现 常用代码的模板: Session session = null; Transaction tx =null; try { session = sessionFactory.openSession(); tx = session...
阅读全文
框架学习之Hibernate 第九节 缓存原理与分析
摘要:1. 一级缓存:Session中共享 测试:可以通过查看输出的 select 语句的数目来测试Hibernate中的Session级的缓存 使用缓存的三种操作:放,取,删 会从缓存中拿数据的方法:get,load,iterate [id为native(自增长的形式的话,save方法是不会放入到一级缓存或者二级缓存中的)] 会向缓存中放入数据的方法:save,update,saveOrU...
阅读全文
框架学习之Hibernate 第八节 懒加载原理与分析
摘要:1. 懒加载 注意:Domain Object 是 非 final 的! 因为懒加载会去继承该类,接着生成新类的代理对象,而抽象类不能被继承 1.session.load 方法 会 懒加载,也就是默认情况下load方法不会加载查询结果的数据的关联对象 这个方法要和get方法进行区分 2.one-to-one 懒加载 由于主表没有constrained=true,所以默认情况下...
阅读全文
框架学习之Hibernate 第七节 继承映射
摘要:1.一个继承树映射到数据库中的一张表 优点:查询效率较高,只查询一张表 缺点:所有子类的字段不能为null,并且增加一个子类就要修改表的结构,这个在关系模型上是不合理的 2.继承树中的每个类都映射到一张表 优点:符合对象模型的设计,增加一个子类不用修改原来的表,只要添加一张新表就可以 缺点:查询时经常会查询多张表,效率不高 3.混合使用“每个类分层结构一张表”和“每个子类一张表” 优点:...
阅读全文
框架学习之Hibernate 第六节 关系映射
摘要:学习各种映射关系时总结: ①如何将对象之间的关联关系映射到数据库中 ②如何检索出关联对象 1.多对一映射 它是使用最多的映射关系,性能上占有优势 关系模型和对象模型:两者并不是一一对应的 举个例子:告诉员工属于哪个部门和告诉部门有哪些员工对于 数据库(关系模型)来说只要有一个就可以 但是对于对象模型不是如此,告诉员工属于哪个部门之后,部门并不会知道自己有哪些员工 实例: domain 包中添加 D...
阅读全文
框架学习之Hibernate 第五节 HQL和Criteria查询入门
摘要:1.HQL和Criteria简介 HQL: 与SQL语句很相似 面向对象的查询语言,与SQL不同,HQL中的对象名是区分大小写的(除了JAVA类和属性其他部分不区分大小写); HQL中查的是对象而不是和表,并且支持多态;HQL主要通过Query来操作,Query的创建方式: Query q = session.createQuery(hql); hql 可以是类似下面的形式: from Perso...
阅读全文
框架学习之Hibernate 第四节 实体对象的三种状态和saveOrUpdate方法
摘要:1.实体对象的三种状态 判断方法:数据库中是否有记录,与session是否有关系 无记录,与session无关:瞬时 有记录,与session无关:脱管 有记录,与session有关:持久 对象状态的转变 2.saveOrUpdate方法 当不知道一个对象是瞬时的还是脱管的时候,就可以调用这个方法让hibernate去判断是save还是update saveOrUpdate,merge(根据I...
阅读全文
框架学习之Hibernate 第三节 session接口以及get/load/persist方法
摘要:1.session接口 2.get和load方法的区别 load方法的返回值一定不是null(这里要注意一下相应的JavaBean的构造方法,一定要有一个默认的构造方法) 懒加载:如果执行load方法,没有查找结果,load方法构造一个结果类的实例 //根据id查找 @Override public User findUserById(int id) { User u = null; Sessio...
阅读全文
框架学习之Hibernate 第二节 入门案例分析
摘要:1.配置文件 hibernate.cfg.xml 【注意】文件的开始部分不要删除,它也是很重要的一部分,删掉会报错! <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hib...
阅读全文
框架学习之Hibernate 第一节 安装配置和基本概念
摘要:1.引入Hibernate重要概念:模型不匹配2.安装配置目前最新版本的Hibernate的下载地址:http://sourceforge.net/projects/hibernate/files/hibernate3/3.6.6.Final/其他的版本下载:http://sourceforge.net/projects/hibernate/files/hibernate3/下载下来的lib目录中的jar文件是hibernate运行需要依赖的jar包,所以不可缺少(当然可以视情况而定,某些特定的需求才会使用上某些jar包)3.基本概念①开发流程:主要有三种流程,推荐使用第一种方式②Domain
阅读全文
浙公网安备 33010602011771号