Hibernate
ncepustrong
这个作者很懒,什么都没留下…
展开
-
hibernate---->介绍
hibernate(冬眠)一、对象关系映射(Object RelationalMapping,简称ORM)ORM是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。二、WhyORM?面向对象的开发方法是当今企业级应用转载 2012-03-31 21:23:54 · 470 阅读 · 0 评论 -
Hibernate---->查询缓存
hibernate查询缓存一、查询缓存查询缓存是针对普通属性结果集的缓存,对实体对象的结果集只缓存id查询缓存的生命周期,当前关联的表发生修改,那么查询缓存生命周期结束二、查询缓存的配置和使用:1、在hibernate.cfg.xml文件中启用查询缓存,如: true2、在程序中必须手动启用查询缓存,如: query.setCacheable(true);/**转载 2012-09-06 23:38:05 · 670 阅读 · 0 评论 -
Hibernate---->一级缓存
一、一级缓存 一级缓存很短和session的生命周期一致,一级缓存也叫session级的缓存或事务级缓存1、get() 、load() 、iterate(查询实体对象)、save()方法支持一级缓存:/** * 在同一个session中发出两次get查询 */ public void testCache2() { Session session = null; t转载 2012-09-06 22:02:41 · 451 阅读 · 0 评论 -
Hibernate——编程式事务
编程式事务一、getCurrentSession()与openSession()的区别? * 采用getCurrentSession()创建的session会绑定到当前线程中,而采用openSession()创建的session则不会 * 采用getCurrentSession()创建的session在commit或rollback时会自动关闭,而采用openSession()创建的s转载 2012-09-09 09:15:39 · 894 阅读 · 0 评论 -
Spring和Hibernate集成--声明式事务
采用声明式事务一、声明式事务配置a、配置SessionFactoryb、配置事务管理器c、事务的传播特性d、那些类那些方法使用事务 classpath:hibernate.cfg.xml 二、编写业转载 2012-09-09 09:16:39 · 601 阅读 · 0 评论 -
Hibernate---->主要接口
一、Configuration概述:Configuration类负责管理Hibernate的配置信息。它包括如下内容:Hibernate运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池等。Hibernate映射文件(*.hbm.xml)。Hibernate配置的两种方法:属性文件(hibernate.properties)。调转载 2012-04-13 22:34:43 · 643 阅读 · 0 评论 -
hibernate---->对象/关系数据库映射基础
>对象/关系数据库映射基础(Basic O/R Mapping)一、 映射定义(Mapping declaration)对象和关系数据库之间的映射通常是用一个XML文档(XML document)来定义的。让我们从一个映射的例子开始: <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mappin原创 2012-05-18 08:54:52 · 677 阅读 · 0 评论 -
hibernate---->Collection映射
集合, 数组类型的映射: set,list, array, map除了下面的方法外,还可以写自定义类型,即让List, Set集合类型存储到数据库时里面的元素用,号隔开.读出来的时候又分解成集合对象.这个有点像structs的类型转换器.注意: * 这里使用的集合类型时,集合对象里面存放的类型是基本数据类型,而不是复杂类或自定义类. 如果是自定义类,那可以用 多对一 的映转载 2012-09-05 21:52:32 · 544 阅读 · 0 评论 -
hibernate---->抓取策略
抓取策略(fetching strategy)抓取策略(fetching strategy) 是指:当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候, Hibernate如何获取关联对象的策略。抓取策略可以在O/R映射的元数据中声明,也可以在特定的HQL 或条件查询(Criteria Query)中重载声明。Hibernate3 定义了如下几种抓取策略:转载 2012-09-07 09:37:06 · 497 阅读 · 0 评论 -
hibernate---->一对一关联映射 (one-to-one)
一对一关联映射 (one-to-one)两个对象之间是一对一的关系,如Person-IdCard,有两种策略可以实现一对一的关联映射主键关联:即让两个对象具有相同的主键值,以表明它们之间的一一对应的关系;数据库表不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联唯一外键关联:外键关联,本来是用于多对一的配置,但是如果加上唯一的限制之后,也可以用来表示一对一关联关系;一、一对转载 2012-09-04 16:14:15 · 651 阅读 · 0 评论 -
Hibernate---->component映射和复合主键映射
一、组件(Component)组件(Component)是一个被包含的对象,在持久化的过程中,它被当作值类型,而并非一个实体的引用。 如姓名(Name)可以作为人(Person)的一个组件,在hibernate中,component是某个实体的逻辑组成部分,它与实体的根本区别是没有oid(object Id),component可以成为是值对象(DDD)Person.javapubli转载 2012-09-05 21:51:44 · 527 阅读 · 0 评论 -
hibernate---->二级缓存
hibernate二级缓存 二级缓存也称进程级的缓存或SessionFactory级的缓存,二级缓存可以被所有的session共享。二级缓存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二级缓存一、二级缓存的配置和使用: 1、 将hibernate-3.2\etc\echcache.xml文件拷贝到src下 2、开启二级缓存,修改h转载 2012-09-06 22:38:41 · 499 阅读 · 0 评论 -
hibernate---->悲观锁和乐观锁
一、悲观锁悲观锁的实现,通常依赖于数据库机制,在整个过程中将数据锁定,其它任何用户都不能读取或修改悲观锁的实现:显式的用户指定"可以通过以下几种方式之一来表示: 调用 Session.load()的时候指定锁定模式(LockMode)。调用Session.lock()。 调用Query.setLockMode()。 package c转载 2012-09-06 10:31:35 · 534 阅读 · 0 评论 -
Hibernate---->第一个例子
Hibernate的第一个例子说明1、创建User Library,加入如下jar hibernate3.jar lib/*.jar MySql jdbc驱动 mysql-connector-java-5.1.7-bin.jar2、创建hibernate配置文件hibernate.cfg.xml,为了便于调试最好加入log4j配置文件转载 2012-04-12 22:14:32 · 472 阅读 · 0 评论 -
Hibernate---->生命周期
持久化对象的状态瞬时对象(Transient Objects):使用new操作符初始化的对象不是立刻就持久的。它们的状态是瞬时的,也就是说它们没有任何跟数据库表相关联的行为,只要应用不再引用这些对象(不再被任何其它对象所引用),它们的状态将会丢失,并由垃圾回收机制回收。持久化对象(Persist Objects):持久实例是任何具有数据库标识的实例。它有持久化管理器Session统一管理,转载 2012-05-18 08:54:26 · 575 阅读 · 0 评论 -
hibernate---->多对一关联映射
1、多对一关联映射 会在多的一端加入一个外键,指向一的一端(主键),这个外键列名是由中的column属性定义的,如果忽略了这个属性那么默认的外键与实体的属性一致功能: a. 告诉数据库,多的一端有一个外键,参照一的一端主键. b. 告诉hibernate,在插入多的一端时,外键的插入会参照一的一端的主键. c. 告诉hibernate,在查找多的一端时,会自动查找一原创 2012-05-18 08:55:12 · 540 阅读 · 0 评论 -
hibernate---->一对多关联映射
一对多关联映射利用了多对一关联映射原理多对一关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是多指向一一对多关联映射:在多的一端加入一个外键指向一的一端,它维护的关系是一指向多也就是说一对多和多对一的映射策略是一样的,只是站的角度不同在一端维护关系的缺点: * 如果将t_student表里的classesid字段设置为非空,则无法保存 * 因为不是在student转载 2012-09-04 16:48:42 · 570 阅读 · 0 评论 -
hibernate---->多对多关联映射
多对多关联映射 (many-to-many)多对多关联映射,需要一个中间表,Hibernate会自动生成中间表一、多对多单向Role.hbm.xml User.hbm.xml 二、多对多双向Role.jbm.xml转载 2012-09-04 16:49:22 · 803 阅读 · 0 评论 -
hibernate---->lazy
hibernate lazy策略hibernate lazy策略可以使用在: *标签上,可以取值:true/false 标签上,可以取值:true/false,指定实例变量第一次被访问时,这个属性是否延迟抓取,需要运行时字节码增强。* 标签上,可以取值:true/false/extra *单端关联上,可以取值:false/proxy/noproxy lazy概念:只有真转载 2012-09-05 20:54:29 · 619 阅读 · 0 评论 -
hibernate---->继承
继承实现的三种策略(推荐使用第一种) 一、每棵类继承树使用一个表(table per class hierarchy)Extends.hbm.xml 1、理解如何映射因为类继承树肯定是对应多个类,要把多个类的信息存放在一张表中,必转载 2012-09-04 22:09:11 · 624 阅读 · 0 评论 -
Hibernate---->session flush方法
session flush方法1、session flush方法主要做了两件事: * 清理缓存 * 执行sql2、session在什么情况下执行flush * 默认在事务提交时 * 显示的调用flush * 在执行查询前,如:iterate3、hibernate按照save(insert),update、delete顺序提交相关操作,即actionQueu转载 2012-09-06 09:50:06 · 980 阅读 · 0 评论 -
hibernate---->查询语言hql
HQL(Hibernate Query Language) 1、简单属性查询 2、实体对象查询 3、条件查询 4、使用sql进行查询 5、外置命名查询 6、查询过滤器7、分页查询 8、对象导航查询 9、连接查询 10、统计查询 11、DML风格的操作一、简单属性转载 2012-09-06 16:36:27 · 621 阅读 · 0 评论