
hibernate
neeleon
这个作者很懒,什么都没留下…
展开
-
hibernate入门(一)第一个应用实例
一 、第一个应用实例1.搭建环境:新建一个名为HibernateDemo的java工程,并导入Hibernate的jar包,特别要注意除了导入lib下的jar包还需导入hibernate3.jar核心jar包。 由于涉及数据库操作,还应导入mysql驱动包。说明,如果使用最新的hibernate,hibernate...原创 2010-07-29 10:03:49 · 92 阅读 · 0 评论 -
hibernate入门(八)其它集合类型
说明:在前面我们已经使用过set集合类型,其实除了set外,在Hibernate中还有list、Bag、Map这三种集合类型。<!-- [if !supportLists]-->1. <!-- [endif]-->list集合的使用:在前面的“一对多的关系”,已经使用过<set>,为...原创 2010-07-29 10:38:32 · 82 阅读 · 0 评论 -
hibernate入门(九)关联关系中的高级应用_级联操作
1.级联操作:在前面的一对多操作中已经有所体现,现在回到前面的一对多操作中,进行一些修改,修改内容如下:Set<Employee> emps = newHashSet<Employee>();emps.add(emp1);emps.add(emp2);depart.setEmp...原创 2010-07-29 10:40:34 · 137 阅读 · 0 评论 -
hibernate入门(九)关联关系中的高级应用_inverse属性
inverse的作用:询问是否放弃维护关系,默认是false,即不放弃维护关系,即要维护关系。下面借助前面的“一对多”实例来详谈“维护关系问题”。static void add() { Session s = null; Transaction tx = null; ...原创 2010-07-29 10:43:07 · 88 阅读 · 0 评论 -
hibernate入门(九)关联关系中的高级应用_继承关系
3.继承关系:在前面的部门员工实例中,我们设定的员工只是普通的员工,现在假如有Sale和Skill两类员工,它们作为Employee的子类。如何实现这些子类的映射?为了方便以后的操作说明和不影响以前的操作,我们把前面用到的员工部门类及相关实体配置文件,主配置文件等拷贝到一个新的项目theExtend下进行操作。(1)共享一张表:...原创 2010-07-29 10:59:58 · 90 阅读 · 0 评论 -
hibernate入门(九)关联关系中的高级应用_懒加载
4.懒加载:在前面我们已经对懒加载有所提及,现在再借助一个简单的实例(它们均位于lazyLoad项目下)再来重新认识懒加载:先看下面的代码:package com.asm.hibernate.test;public class UserTest2 { public static v...原创 2010-07-29 11:07:53 · 142 阅读 · 0 评论 -
hibernate入门(九)关联关系中的高级应用_概述关联关系中的懒加载
5.概述关联关系中的懒加载:(1)一对一中的懒加载:必需要同时满足三个条件才能实现懒加载:即在<one-to-ont> 元素中配置lazy!=false(即是为true或proxy);constrained=true;fetch=select,但在主表中不会有懒加载,因为主表不能满足constrained=true;其实在主外...原创 2010-07-29 11:09:07 · 98 阅读 · 0 评论 -
hibernate入门(十)缓存
1.模拟缓存并简要说明缓存实现原理在myhibernate项目下新建一个包com.asm.hibernate.test.cacheTest来说明与缓存有关的问题。首先看下面的一个模拟缓存程序,主要代码如下:package com.asm.hibernate.test.cacheTest;public class Cac...原创 2010-07-29 11:11:17 · 97 阅读 · 0 评论 -
hibernate入门(十一)事务
1.事务引发的三层架构MVC讨论:在前面的程序代码中多次用到了事务:Transaction tx = s.beginTransaction(); 对应的jdbc代码:connection. setAutoCommit(false);..........数据处理.....tx.commit(); 对应的jdbc...原创 2010-07-29 11:16:16 · 147 阅读 · 0 评论 -
hibernate入门(七)关联关系讨论_组件关系映射
典型实例:每个人有不同的名字,或者多个人可以是同一个名字,对于这种现象可以是“一个一”或者“多对一”,这样会被设计成两张表来映射,而我们采用组件关系来映射就可以在一张表中映射实现。具体过程如下:>>步骤一、编写实体文件Name.java 和People.java Name.java内容如下: 省略getXXX和setXXX()...原创 2010-07-29 10:36:54 · 86 阅读 · 0 评论 -
hibernate入门(七)关联关系讨论_多对多关系映射
典型实例:一个学生可以有多个老师,同样一个老师可以有多个学生,对此设计如下:学生studnet表:columnidnameteachers老师teacher表:columnidnamestudnets在利用学生查到他...原创 2010-07-29 10:31:07 · 111 阅读 · 0 评论 -
hibernate入门(二)优化代码
1.为会么要优化在前面我们已经知道,获取SessionFactory对象是一个重复的过程。因此我们可以把这个操作写成一Util类。下面我们把这一步写成工具类HibernateUtil,内容如下:packagecom.asm.hibernate.utils;importorg.hibernate.Session;...原创 2010-07-29 10:07:04 · 79 阅读 · 0 评论 -
hibernate入门(三)Session中的主要方法
1.保存数据:save,presist 说明:这两种方法的主要区别主要体现在未开启事务时。save方法如果是没开启事务,会执行相关sql语句,随后再回滚。而presist根本就不执行这些sql语句。2.删除对象:delete3.更新数据:update 说明,如果数据库中没有记录将会出现异常4.查找数据:get...原创 2010-07-29 10:09:18 · 107 阅读 · 0 评论 -
hibernate入门(四)对象三种状态
1.瞬时(transient):数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器回收,一般是new出来的且与Session无关系的对象。2.脱管-游离(detached):数据库中有数据与之对应,但当前没有Session与之关联:脱管对象状态发生改变,Hibernate不能检测到。3.持久(persistent):数据...原创 2010-07-29 10:12:09 · 124 阅读 · 0 评论 -
hibernate入门(五)完善工具类及HQL QBC初步相关
1.无聊的讨论:在前面我们写了一个工具类:HibernateUtil。其实我们还可以把CRUD操作封装到这个工具类中,并把它们都做成静态的,这样这个工具类就可以直接调用了。但是这样的操作对查询数据可能不是很好,因为它的查询方式很多,除非我们一一考虑这些可能涉及到查询方式,并能以重载的形式进行统一管理。其实我也试想过把这此数据库操作方法进行二次封装,在工具类写...原创 2010-07-29 10:17:30 · 91 阅读 · 0 评论 -
hibernate入门(六)基本应用实例:Dao设计
1.总体设计:设计User对象及相关实体配置文件,工具类(得到一个Session对象),UserDao接口(实现此接口即以操作数据库),编写主配置文件,编写测试类。2.UserDao的设计,最初我想打算设计成通用Object的操作,后来发现它的Session对象操作都要传递一个对象,就设计成如下形式。内容如下:package com.as...原创 2010-07-29 10:20:25 · 122 阅读 · 0 评论 -
hibernate入门(七)关联关系讨论_多对一关系映射
1.多对一关系映射:一个部门有可以有多个员工,而一个员工只属于一个部门。从员工角度看,很多员工会隶属一个部门。 现以实例说明,实例概要:一个部门类,只有id和部门名称两个属性。有一个员工类,有id和员工名称及部门对象三个属性。操作步骤如下:>>步骤一,建立Depatment.java及实体配置文件:package...原创 2010-07-29 10:22:59 · 109 阅读 · 0 评论 -
hibernate入门(七)关联关系讨论_一对多关系映射
2.一对多关系映射:上面提到的多个员工对应于一个部门,是多对一的关系,如果一个部门有多个员工,则用“一对多”的关系来表示这个关系,现接上例继续,以实现一对多的关系映射。具体操作步骤如下:>>步骤一,在Department.java中增加如下内容:private Set<Employee> emps; 及相应...原创 2010-07-29 10:25:20 · 103 阅读 · 0 评论 -
hibernate入门(七)关联关系讨论_一对一关系映射
典型的实例:一个人有一个身份证,而一个身份证只属于某一个人。以此为模型实现一对一关系的映射。下面的实例先以主键进行关联:主键关联:从表的主键同时又作为外键参考主表的主键。比如在下面的实例中,人作为主表,身份证作为从表。>>步骤一,建立Person类及相关的实体配置文件。packagecom.asm.hibernate....原创 2010-07-29 10:27:30 · 104 阅读 · 0 评论 -
hibernate入门(十二)一些细节问题分析
1.实体配置文件中的类型问题:在前面的多个实例中配置<property>映射类型时,我们都采取的是hibernate默认的配置,即是说没有在<property>中配置type属性:其实基本类型一般不需要映射文件中配置,只有在一个java类型与多个数据库类型相对应时,交且我们不希望使用默认的配置才会用type来指明类型。...原创 2010-07-29 11:17:44 · 111 阅读 · 0 评论