SSH学习之Session接口的常用方法
2017-03-18 10:10
239 查看
回忆
在上一篇播客SSH学习之Hibernate的第一个程序中介绍了基本的Hibernate框架的开发搭建环境,了解了Hibernate的基本过程。在这一篇里,我要介绍的是我么使用Hibernate框架最为常用的东西:数据库的操作方法。在之前的博客中也介绍了Session接口对数据库操作的一些方法,这里就详细的讲讲这些方法的使用。对象的三种状态
临时态(或者瞬时态)实体类对象中标识符没有值(除了assigned指定之外)且和表没有任何关联,没有和session相关联。
与数据库中的记录没有任何关联,也就是没有与其相关联的数据库信息。
与session对象没有任何关系,也就是session没有对他进行任何操作。
持久态
实体类对象标识符有值,并且和session相关联,持久态的对象会自动更新数据库。
处于持久态的实体类对象最大的特征是对其所做的任何更改操作都会更新到数据库中。
托管态(或者游离态)
对象里有标识符值,但是和session却没有关联。
托管态对象一定是有持久态对象转换而来。
对托管态对象所做的所有操作都不会影响到数据库的信息。
三种状态的转换:
常用方法
get方法通过该方法可以获取持久化对象。
书写方式:session.get(类名.class, 标识符)。
过程:通过id值在session缓存中查找对象,如果存在就返回,如果不存在就从数据库中加载此对象。
load方法
通过该方法可以获取持久化对象。
书写方式:session.load(类名.class, 标识符)。
过程与get方式相同。
get和load的区别
在立即从数据库中加载对象时,如果存在与标识符相对应的记录,则两者均会返回对象,如果不存在,get方式返回null,load方式抛出一个异常。
save方法
通过该方法可以向数据库中保存一个对象,即一条记录。
书写方式:session.save(对象)。
在没有将对象和session相关联时,对象的标识符为null。
save方法调用时,框架就会为对象指定一个标识符作为主键。
save方法只是将对象存入到session的缓存中,并没有保存到数据库。
提交事务时,将会清理session缓存,生成sql语句将对象保存到数据库中。
update方法
更改已经存在数据库信息。
书写方式:session.update(对象)。
过程:首先需要获取到该对象,然后对其进行更改,再用update方法将其更改。
saveOrUpdate方法
对脱管态对象使用save方法是不对的,对临时态对象使用update方法也不对。saveOrUpdate方法同时兼具两种方法的功能,对于传入的对象首先判断该对象是托管态还是临时态,然后再调用相应的方法。
delete方法
这个方法是用来删除某一个对象的。
书写方式:session.delete(对象)。
过程:首先需要获取到该对象,然后对其进行更改,再将其删除。
多余的话
在实际的开发中,我们操作得最多的还是查询操作,所以Hibernate框架又专门提供了另一个接口对数据库进行查询,Query接口,在后续记录中会讲解他的常用方法,以及如何进行分页查询等。相关文章推荐
- java WEB学习笔记32:HttpSession 接口常用方法 及 HttpServletRequest接口中的Session方法 Demo
- Hibernate学习笔记(四)----核心开发接口、对象的三种状态、session常用方法
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与LinkedHashSet类))
- .net学习之多线程、线程死锁、线程通信 生产者消费者模式、委托的简单使用、GDI(图形设计接口)常用的方法
- Session接口常用方法
- Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API
- Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin
- 框架学习之Hibernate 第三节 session接口以及get/load/persist方法
- 学习hibernate(三) -- session常用方法
- hibernate学习之session常用方法和HQL语句的学习
- 学习.NET (8) 实现派生类中Deep Copy的几种常用方法(通过ICloneable接口)
- SSH学习之Hibernate session的方法全集
- .net学习之多线程、线程死锁、线程通信 生产者消费者模式、委托的简单使用、GDI(图形设计接口)常用的方法
- session接口及其常用方法
- SSH学习---Spring中常用的hql查询方法(getHibernateTemplate())(转载)
- 学习ExtJS Window常用方法
- 学习ExtJS(四) Panel常用方法
- 2009-04-09技术学习:wicket常用控件使用方法
- 学习ExtJS(三) TextField常用方法
- 学习ExtJS(二) Button常用方法