详谈hibernate
文章平均质量分 82
hibernate概述:Hibernate是一个开源ORM框架。 ORM全称Object Relation Mapping,即对象关系映射。它是一种用来完成对象模型到关系模型的映射技术。本专栏是博主一年以来的学习与做项目的经验心得,本专栏将以具体案例分析加理论心得。
y_keven
点线面
展开
-
hibernate增删改查的标准范例
一个套用hibernate框架编写的增删改查小范例,此处分享一下,经过多次修改,从代码规范和后期维护,以及简洁程度上说:算是很标准的书写格式;package www.csdn.net.bookhome.daoimpl;import java.util.List;import org.hibernate.Session;import org.hibernate.Transac原创 2013-01-09 14:39:05 · 1502 阅读 · 0 评论 -
心得15-hibernate的优化2-缓存(一级、二级)
1.缓存概述 缓存(cache)在java应用程序中是一组内存中的集合实例。它保存着永久性存储源(如硬盘上的文件或者数据库)中数据的备份,它的读写速度比读写硬盘的速度快。应用程序在运行时直接读写缓存中的数据,只在某些特定时刻安排缓存中的数据来同步更新数据存储源。如果缓存中存放的数据量非常大,也会用硬盘作为缓存的物理介质。 缓存的作用就是降低应用程序直接读写永久性数据存储源的频率,原创 2013-01-05 07:44:08 · 1323 阅读 · 0 评论 -
心得14-hibernate的优化2-抓取(fetch)
在HQL语句中使用抓取连接查询,通过写一条left join fetch 语句把相关联的两个实体的数据一次性从数据库中加载上来。这样可以在特定情况下(同时需要使用到这两个实体的数据)减少SQL的数量来提高查询效率。通过配置“抓取策略”来直接影响session的get()和load()方法的查询效果。1.单端关联上的抓取策略。 可以给单端关联的映射元素添加fetch属性。fetch属性有原创 2013-01-03 22:34:52 · 1394 阅读 · 0 评论 -
心得13-hibernate的优化1-懒加载(lazy)
为了进一步优化Hibernate的性能,可以使用: 延迟加载技术、管理数据抓取策略、进行缓存管理 等方面考虑来提高Hibernate的性能。1.延迟加载(load)延迟加载(load)是Hibernate为提高程序执行效率而提供的一种机制,即只有真正使用该对象的数据时才会创建。延迟加载的过程:通过代理(Proxy)机制来实现延迟加载。Hibernate从数据库获取某一个对原创 2013-01-03 22:32:40 · 1513 阅读 · 0 评论 -
心得12-hibernate的QBC语句
1. Criteria相关介绍Criteria叫标准化条件查询,是比HQL更面向对象的查询语句。称为QBC(Query By Criteria)Criteria接口:代表一个查询。它是一个查询条件的容器,通过add()方法向其实例中添加查询条件。Criterion接口:代表一种面向对象的查询条件。它的实例是作为Criteria接口add()方法的参数添加到Criteria实例中的。原创 2012-12-28 15:33:39 · 1365 阅读 · 0 评论 -
心得11-hibernate.的HQL语句
1. Hibernate查询介绍Hibernate HQL查询、Criteria查询、调用存储过程Hibernate事务管理和并发控制Hibernate 延迟加载策略、抓取策略、一级二级缓存管理Hibernate整合Struts2. HQL介绍HQL:Hibernate查询语言,它是Hibernate提供的一种面向对象的查询语言。 (1)在查询语句中设定各种查询条件原创 2012-12-26 17:34:20 · 1884 阅读 · 0 评论 -
hibernate常见错误汇总
请尊重别人的劳动成果,转载请指明:http://blog.csdn.net/tianyazaiheruan1. 插入失败,某一字段没有默认值:insert fail;filed depid doesn't have a default value 这个错误往往是你丈二和尚—摸不着头脑,因为它并没有提示哪一行错误,也没说清为什么错误;笔者经过层层排错找出了错误:这是数据库中的错误,说原创 2012-12-25 19:34:30 · 4954 阅读 · 1 评论 -
hibernate中的id特殊属性hilo剖解(多用于继承关系)
hilo是hibernate中最长用的一种生成方式,hibernate给出了hilo 和 seqhilo两种生成器,他们的分别向下面一样配置Hilo配置代码 wasw100_hilo_tbl next_value 100 Seqhilo配置代码 hi_value 100 seqhilo生成器需要数据库对seq原创 2012-12-25 18:03:34 · 2769 阅读 · 1 评论 -
心得10-hibernate 高级映射之继承映射
1.对象模型(Java类结构)2.一个类继承体系一张表(subclass)(表结构)一个类继承体系一张表(subclass)(映射文件) 鉴别器,用来标识雇员具体是哪个类型;需要注意的是鉴别器的位置是固定,不能乱放,只能放置在id后其他属性前-->原创 2012-12-25 17:54:29 · 1147 阅读 · 0 评论 -
心得9-hibernate 高级映射之组件映射
1. 组件映射概述 组件类是值类型的,它没有对象标识符属性,在数据库中没有对应的表,它只隶属于另一个持久化类的实例。 把组件类作为持久化类的单个属性来使用 把组件类作为持久化类的集合属性来使用2.组件映射(User-Name)关联的属性是个复杂类型的持久化类,但不是实体即:数据库中没有表与该属性对应,但该类的属性要永久保存的。原创 2012-12-25 17:59:06 · 1239 阅读 · 0 评论 -
心得8-hibernate 高级映射
在做持久化类的时候的规定: 1).有一个默认的构造方法; 2).所有的属性都有setter和getter方法 3).有一个对象标识符Oid; 4).如果有集合属性,则必须定义成接口类型:List、Set、Map。不能定义成类类型HashSet、hashMap、ArrayList等1. Hibernate高级映射元素:可以映射java.util.Set接口原创 2012-12-24 13:18:44 · 1211 阅读 · 0 评论 -
心得7-hibernate级联之多对多转换为多对一的问题剖析
这里与多对多不同的是借用了一个中间类StudentCourse来达到把多对多的问题转换为多对一的问题,下面来举例具体介绍: 先看看三个最重要的xxx.hbm.xml文件内部信息Student.hbm.xml<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping原创 2012-12-24 13:17:10 · 1183 阅读 · 0 评论 -
心得6-hibernate级联之多对多单双向剖析
多对多: 学生与课程,以下主要从案例出发,由案例具体解析单向多对多Student.hbm.xml<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernat原创 2012-12-22 10:34:14 · 1291 阅读 · 0 评论 -
心得5-hibernate级联之一对一单双向剖析
1.知识点概述格式化显示的sql语句,好看 -->true显示sql语句 -->true关联关系包括多样性和方向性的关联。映射关联关系就是把对象模型中类之间的关联关系映射成关系模型中数据库表之间的外键引用关系。2. 一对一关系单向一对一:(公民与身份证)方式一:基于唯一主键Citizen.hbm.xmlunique=“true” cascade=“all原创 2012-12-22 10:32:19 · 1889 阅读 · 0 评论 -
心得4-hibernate入门4 级联之双向一对多与多对一
继上篇博客之后的补充:双向的一对多与多对一级联关系操作。具体请看下面案例分析: 配置文件没有什么变化,就是上一篇博客中的多对一与一对多的集合一块,不会的留言,这里不再细说了。主要测试类,下面类测试级联更新,级联删除的多种情况,级联插入,级联查找的不同情况,并附有相关注释介绍相关操作package com.hbsi.orders_o2mboth;import java.util.原创 2012-12-20 17:16:15 · 1540 阅读 · 0 评论 -
心得3-hibernate入门3
1.对象状态瞬时(transient):数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来且与session没有关联的对象。 持久(persistent):数据库中可能有数据与之对应,当前与session有关联,并且相关联的session没有关闭,事务没有提交;持久对象状态发生改变,在事务提交时会影响到数据库(hibernate能检测到)。脱管(de原创 2012-12-19 17:22:50 · 1397 阅读 · 0 评论 -
心得2-hibernate入门2
1. 主要类与接口Hibernate。Hibernate通过Configuration的实例加载配置文件信息,然后读取指定对象关系映射文件的内容并创建SessionFactory实例。SessionFactory接口 负责初始化Hibernate。一个SessionFactory实例对应一个数据库。应用程序从SessionFactory中获得Session实例。Session接口原创 2012-12-18 14:18:41 · 1636 阅读 · 0 评论 -
心得1-hibernate入门
1.jdbc连接的优缺点JDBC的优点 直接底层操作,提供了很简单、便捷的访问数据库的方法,跨平台性比较强。灵活性比较强,可以写很复杂的SQL语句。JDBC的缺点1).因为JAVA是面向对象的,JDBC没有做到使数据能够面向对象的编程,使程序员的思考仍停留在SQL语句上。2).操作比较繁琐,很多代码需要重复写很多次。3).如果遇到批量操作,频繁与数据库进行交互,容易造成原创 2012-12-17 14:26:03 · 1784 阅读 · 0 评论