- 浏览: 357862 次
- 性别:
- 来自: 广东珠海
文章分类
最新评论
-
cuiyijing:
[size=small]马士兵 26_homework_dml ...
SQL面试题 -
utobe:
兄弟 你真的出名了,尚学堂 oracle 马士兵的视频拿你的题 ...
SQL面试题 -
tlqtangok:
没看懂,能解释一下吗?
安装Oracle后java的jvm会报错 -
a114d:
itling 写道尚学堂的demo楼上威武
hibernate 全面学习【hibernate抓取策略 】 -
wohenshuaiba:
不错,但是没写return checkimg( this ); ...
图片上传
测试对象的生命周期:
Junit简介:
* 编写类XXXXTest,需要继承TestCase
* 编写单元测试方法,测试方法必须以test开头,测试方法不能含有参数和返回值,如:
public void testHello() {
* 最好单独建立source目录存放测试类
理解通过session接口进行CRUD的基本操作方法。
get和load的区别?
Transient对象具有的特征:
* 不处于session缓存中,不被任何一个session实例关联
* 在数据库中没有相应的记录
persistent对象具有的特征:
* 位于一个Session的缓存中,持久对象总是和一个session实例关联
* 持久对象和数据库中的记录对应
* 持久对象的变化会自动同步到数据库
detached对象具有的特征:
* 不再位于session的缓存中,不被session关联
* detached对象是由persistent对象转变过来的,因此数据库中会存在一条记录与之对应
Junit简介:
* 编写类XXXXTest,需要继承TestCase
* 编写单元测试方法,测试方法必须以test开头,测试方法不能含有参数和返回值,如:
public void testHello() {
* 最好单独建立source目录存放测试类
理解通过session接口进行CRUD的基本操作方法。
get和load的区别?
Transient对象具有的特征:
* 不处于session缓存中,不被任何一个session实例关联
* 在数据库中没有相应的记录
persistent对象具有的特征:
* 位于一个Session的缓存中,持久对象总是和一个session实例关联
* 持久对象和数据库中的记录对应
* 持久对象的变化会自动同步到数据库
detached对象具有的特征:
* 不再位于session的缓存中,不被session关联
* detached对象是由persistent对象转变过来的,因此数据库中会存在一条记录与之对应
package com.bjsxt.hibernate; import java.util.Date; import org.hibernate.Session; import junit.framework.TestCase; public class SessionTest extends TestCase { public void testSaveData() { Session session = null; //Transient对象 User user = new User(); try { //得到session session = HibernateUtils.getSession(); //开启事务 session.beginTransaction(); user.setName("张三"); user.setPassword("123"); user.setCreateTime(new Date()); user.setExpireTime(new Date()); //persistent对象 session.save(user); //persistent状态的对象的属性发生的改变,Hibernate会自动和数据库同步 user.setName("李四1"); session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } //detached对象 user.setName("王五1"); try { session = HibernateUtils.getSession(); session.beginTransaction(); //persistent对象 session.update(user); session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); }finally { HibernateUtils.closeSession(session); } } public void testReadByGetMethod() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); //get会马上发出sql进行执行查询 User user = (User)session.get(User.class, "4028808114163acb0114163b35ac0001"); System.out.println("user name=" + user.getName()); //此时为persistent对象,所以可以自动同步到数据库中 user.setName("王二"); session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); } finally { HibernateUtils.closeSession(session); } } public void testReadByLoadMethod() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); //load方法实现了Lazy(延迟加载或懒加载),所以不会马上发出sql //只有真正使用时才会发出sql,Lazy是hibernate的重要特性 User user = (User)session.load(User.class, "4028808114163acb0114163b35ac0001"); System.out.println("user name=" + user.getName()); System.out.println("password=" + user.getPassword()); //此时为persistent对象,所以可以自动同步到数据库中 user.setName("王三"); session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); } finally { HibernateUtils.closeSession(session); } } public void testUpdate() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); //此时为Transient对象 User user = new User(); user.setId("4028808114163acb0114163b35ac0001"); user.setName("abc"); session.update(user); //此时为persistent对象 session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); } finally { HibernateUtils.closeSession(session); } } public void testDelete() { Session session = null; try { session = HibernateUtils.getSession(); session.beginTransaction(); //此时为Transient对象 User user = new User(); user.setId("4028808114163acb0114163b35ac0001"); session.delete(user); session.getTransaction().commit(); }catch(Exception e) { e.printStackTrace(); session.getTransaction().rollback(); } finally { HibernateUtils.closeSession(session); } //此时为Transient对象 } }
发表评论
-
hibernate
2012-05-14 14:27 0<?xml version="1.0" ... -
hibernate 全面学习->hibernate 关联映射学习
2008-07-04 16:26 4865hibernate 关联映射学习包括 一对一,一对多,多对多 ... -
hibernate 全面学习【悲观锁和乐观锁 学习】
2008-07-04 16:12 1506乐观锁: 大多数基于数据版本(version)记录机制实现,一 ... -
hibernate 全面学习【lazy策略 】
2008-07-04 15:58 7079lazy策略可以用在: * <class>标签 ... -
hibernate 全面学习【hibernate抓取策略 】
2008-07-04 15:46 3998Hibernate抓取策略 默认fetch的配置,也就fet ... -
hibernate 全面学习【hibernate hsql语句学习 】
2008-07-04 15:31 4862Hibernate hql * 注意hql的大小写敏感性 ... -
hibernate 全面学习【hibernate 粗粒度分析 】
2008-07-04 15:16 1555Hibernate继承映射的第一 ... -
hibernate 全面学习【hibernate 集合映射】
2008-07-04 15:07 2606集合的映射 set list array map packag ... -
hibernate 全面学习【hibernate 复合主键映射】
2008-07-04 15:01 1810复合主键映射 通常将复合主键相关属性,单独抽取出来,建立一个 ... -
hibernate 全面学习 【hibernte 组件映射学习 】
2008-07-04 14:59 1119component(组件映射) 在hibernate中,c ... -
hibernate 全面学习 【hibernate 缓存学习 】
2008-07-04 14:26 1887hibernate 缓存分为一级缓存和二级缓存,及查询缓存 ... -
hibernate 全面学习 【hibernate 基本映射】
2008-07-04 14:16 1218Hibernate基本映射: 类-->数据库表 普通属 ... -
Hibernate createCriteria查询
2007-05-18 08:36 165771、创建一个Criteria实例 net.sf.hiberna ... -
hibernate中Query和Criteria的用法
2007-03-15 17:20 2951//Scenario 1: query all ... -
“generating artifacts"的解决!
2007-03-14 13:45 11620很多人在用myeclipse4.1.1对一个表生成映射文件的时 ... -
hibernate+spring学习例子
2007-02-26 15:00 1918看例子,来这习hibernate 和spring -
hibernate问题,贴上来
2007-02-26 11:06 2125(1)hibernate警告 Could no ... -
利用模板方式写一个管理hibernate 中session的方法
2007-02-23 09:41 3540package com.t48.hr.util; imp ... -
解快hibernate查询带中文乱码问题
2007-02-20 14:32 2403"from ManPo ma where ma.na ... -
Hibernate分页
2007-02-06 08:50 1496import org.hibernate.Query; imp ...
相关推荐
hibernate配置文件,session工厂学习,session链接数据库
Hibernate Session释放模式
Hibernate-nosession浅谈代码案例。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
hibernate中session的管理描述。 hibernate中session的管理描述。
Hibernate 中对session的管理!
可以对hibernate的 Session 和 Transaction 有更深入的认识 希望对一些概念比较模糊的人 有帮助
No Hibernate Session bound to thread,没有绑定线程解决办法,找了好久才找到的
手写hibernate的session实现简单增删改查,适合新手学习hibernate
hibernate中session对象的状态详解
JAVA的hibernate手动获取session的方法
Hibernate的透明持久化用起来非常舒服,有时甚至忘记了数据库的存在。我身边的朋友经常会分不清save、saveOrUpdate、update的区别,lock、merge、replicate、refresh、evict甚至不知道是干什么用的。而且关于实体...
hibernate概述,hibernate入门Demo,hibernate配置文件详解(全局配置,实体类映射配置),配置实体规则,核心API详解(Configuration,sessionFactory,session,Transaction),hibernate中的对象状态以及刷新能缓存机制 ...
Hibernate_session_factory_配置
hibernate--3.Hibernate数据持久化(通过 Session 操纵对象)
内容涵盖安装 Hibernatetools 插件、Session 核心方法、持久化对象生命周期、对象关系映射、检索策略、检索方式、Hibernate 一\二级缓存、管理 Session、批量处理等 Hibernate 企业级开发的核心技术。
hibernate 学习资料 Session接口 Query和Criteria接口 Hibernate主键介绍 二级缓存的管理
本章学习目标 Hibernate 初认识 Hibernate 的HelloWorld hibernate.cfg.xml 配置详解 *.hbm.xml 对象映射文件详解 Hibernate 核心接口详解 抽取HibernateUtil 工具类 使用Session 接口进行增删...
NULL 博文链接:https://former.iteye.com/blog/676665
NULL 博文链接:https://selvemen.iteye.com/blog/457225
hibernate session详细方法,值得珍藏