Hibernate学习笔记:session操作对象
2010-07-01 11:29
369 查看
Session提供了基本的crud操作, 事务控制, 一级缓存。
save(): 保存一个新对象到数据库。对应插入数据库中的一条记录, 这里要注意的是,如果该对象的主键配置为identity, increment, forgign, sequence等等,则在save的时候不能指定id,如果id generator配置为assigned,则必须指定id.
update(): 更改一个对象,对应的更改数据库中的一条记录;
delete(): 删除一个已经存在的对象,对应的删除数据库中的一条记录
get() 和 load() ,他们都通过id加载一个对象,然而区别很大,区别有2:
1: get如果没有找到数据,会返回null,load如果没有找到与id对应的数据,会抛出exception.
2: 他们有延迟加载的区别,get会直接返回那个对象(如果有的话),而load会先返回一个代理对象,只有当真正用这个对象的属性或方法的时候才会去查数据库,
: saveOrUpdate(): 同时包括save和update方法,如果传入的是一个新对象(后面提到的瞬时对象)则调用save,如果传入的是一个已经在数据库中存在的对象(后面会提到的托管对象), 则调用update. beginTransaction(): session通过该函数申明事务开始. 通过transaction.commit()申明事务结束. session中带有一级缓存, 是内置的, 像这个代码片中,只会查一次数据库,因为第二次会现在session的缓存中寻找.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sunxing007/archive/2009/08/21/4469284.aspx
save(): 保存一个新对象到数据库。对应插入数据库中的一条记录, 这里要注意的是,如果该对象的主键配置为identity, increment, forgign, sequence等等,则在save的时候不能指定id,如果id generator配置为assigned,则必须指定id.
update(): 更改一个对象,对应的更改数据库中的一条记录;
delete(): 删除一个已经存在的对象,对应的删除数据库中的一条记录
get() 和 load() ,他们都通过id加载一个对象,然而区别很大,区别有2:
1: get如果没有找到数据,会返回null,load如果没有找到与id对应的数据,会抛出exception.
2: 他们有延迟加载的区别,get会直接返回那个对象(如果有的话),而load会先返回一个代理对象,只有当真正用这个对象的属性或方法的时候才会去查数据库,
: saveOrUpdate(): 同时包括save和update方法,如果传入的是一个新对象(后面提到的瞬时对象)则调用save,如果传入的是一个已经在数据库中存在的对象(后面会提到的托管对象), 则调用update. beginTransaction(): session通过该函数申明事务开始. 通过transaction.commit()申明事务结束. session中带有一级缓存, 是内置的, 像这个代码片中,只会查一次数据库,因为第二次会现在session的缓存中寻找.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sunxing007/archive/2009/08/21/4469284.aspx
相关文章推荐
- Hibernate学习笔记:session操作对象
- [原创]java WEB学习笔记79:Hibernate学习之路--- 四种对象的状态,session核心方法:save()方法,persist()方法,get() 和 load() 方法,update()方法,saveOrUpdate() 方法,merge() 方法,delete() 方法,evict(),hibernate 调用存储过程,hibernate 与 触发器协同工作
- [原创]java WEB学习笔记94:Hibernate学习之路---session 的管理,Session 对象的生命周期与本地线程绑定
- [原创]java WEB学习笔记15:域对象的属性操作(pageContext,request,session,application) 及 请求的重定向和转发
- [原创]java WEB学习笔记77:Hibernate学习之路---Hibernate 版本 helloword 与 解析,.环境搭建,hibernate.cfg.xml文件及参数说明,持久化类,对象-关系映射文件.hbm.xml,Hibernate API (Configuration 类,SessionFactory 接口,Session 接口,Transaction(事务))
- Hibernate学习笔记(四)----核心开发接口、对象的三种状态、session常用方法
- 【学习笔记】Hibernate中对象的状态和转换以及Session的主要方法总结
- Hibernate学习笔记----Session管理和批量操作
- Hibernate_操作对象_对象的状态分类、Session中的方法概述
- Hibernate学习笔记:对象生命周期
- JavaScript 对象属性操作和方法学习笔记(上)
- Hibernate学习笔记 之 持久化对象的状态
- JavaWeb学习笔记-Hibernate-05-实体对象与数据库关键词冲突解决方法
- 基于《Selenium 2自动化测试实战》的学习笔记(7)—— 操作测试对象
- web进阶之jQuery操作DOM元素&&MySQL记录操作&&PHP面向对象学习笔记
- [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系
- jQuery学习笔记 操作jQuery对象 CSS处理
- Servlet学习笔记(1)--第一个servlet&&三种状态对象(cookie,session,application)&&Servlet的生命周期
- 【JavaEE学习笔记】Hibernate_06_注解开发,getCurrentSession(),映射关系
- 【JavaEE学习笔记】Hibernate_05_数据类型转换和大对象处理,QBC(junit),DAO接口