第四讲:hibernate 的session (二)

Session在hibernate中表示连接。下面介绍他的常用方法。

在使用前先把最重要的说了。打开API,发现在session中基本所有的方法(包括获得session的方法)都会抛出异常HibernateException,HibernateException异常为一个运行时异常,所以我们在程序中不处理编译也不会报错。但是因为我们在结尾处要一定要关闭session,所以必须把他们放在try里

1.HibernateSessionFactory.getSession()

获得session

2.close()方法

用于关闭session,在关闭前先判断一下他是不是为空,必须放在finally中

if(session!=null)
 session.close();

3.createQuery()方法

用于创建Query

4.get(Class clazz,Serializable id)方法

注意get方法只能根据主键值查询,返回的是对象,也就是说他只能查询一条记录

TUser user=(TUser)session.get(TUser.class,3001);

5.load(Class clazz,Serializable id)方法

使用频率较低,他与get是由区别的

6.update(Object object)

更新操作,如果对象中有几个实例变量没有设置值,他会更新为默认值,所以推荐更新使用HQL的方式

7.delete(Object object)

删除操作,可以只设置主键值

8.save(Object object)

向数据库中插入数据

9.beginTransaction()

启动事务,用于update,delete,insert

10.saveOrUpdate(Object object)

在不确定应该插入还是更新的情况下使用它

11.getNamedQuery(String queryName)

用于命名查询,在配置文件中定义好然后再这里调用

时间: 2024-12-29 01:15:34

第四讲:hibernate 的session (二)的相关文章

Hibernate入门(四)之hibernate中session的创建方式

为什么要专注于session的创建方式 在有些场景必须关注session的创建,比如说在银行转账操作的时候,两个账户转账必须在同一个session中 如上面所示,账户1钱没了,账户2钱却没有到,原因就在于两者不再同一个事务当中,不能实现事务的回滚. getCurrentSession 说明: 1.产生方式的说明 1.先检查当前线程中是否有session 2.如果当前线程中有session,则把session提取出来,直接使用 3.如果当前线程中没有session,则采用openSession方法

管理心理学第四讲.目标管理心理学 之二

二.目标制定中的原则 ?2.1  突破"自我设限", 用目标和期待激发下属的潜力 在日常生活中,我们每个人都会产生"自我设限", 在自己的心里面给自己设置一个"限定", 这个"限定"在遇到困难时就会暗示自己: "我的能力不够, 我不可能做到! 我担了不这个责任,让别人去做吧! 这次不行,还是下次再说吧!" 这些"自我限定",是人无法越过障碍,克服困难,取得成功的重要原因之一. 对于这种情

Hibernate框架简介(二)基本使用增、删、改、查

一.Hibernate框架简介 Hibernate是一个优秀的Java持久化层解决方案,是当今主流的对象-关系映射(ORM,ObjectRelationalMapping)工具 1.1.理解持久化 瞬时状态:在程序运行的时候,有些程序数据是保存在内存中,当程序退出后,这些数据就不复存在了,所以称这些数据的状态为瞬时状态 持久状态:在使用一此软件的时候,有些数据,在程序退出后,还以文件等形式保存在硬盘或者数据库中,称这些数据的状态是持久状态 持久化:持久化就是将程序中的数据在瞬时状态和持久状态之间

Hibernate学习笔记(二) — 探索 hibernate 中对象的状态

一.hibernate中对象的状态有三种: 临时.游离和持久化,三种状态转化的方法都是通过session来调用的 什么是持久化? 通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存) 二.三种状态的相互转换 session方法 session.save():该方法可以把一个对象从临时装填转换成持久化状态 session.get():从数据库中根据主键提取出一个对象,该对象就是一个持久化状态的对象 session.update():把一

hibernate中session的获取使用以及其他注意事项

hibernate中session的获取使用以及其他注意事项 前言:工作时,在同时使用Hibernate的getSession().getHibernateTemplate()获取Session后进行数据查询时不是出现了"session is close"异常就是出现其他异常问题,痛定思痛,决定收集并整理相关资料,方便今后的使用. 一.session的获取 在hibernate中的Session对象通过SessionFactory来管理,可以通过使用openSession ().get

Hibernate入门(二)

一.主键生成策略 1.主键的类型 自然主键: 把有特定业务含义的字段作为了主键 eg: 用户的名字, 身份证号码 代理主键: 把没有特定业务含义的字段作为了主键 eg: id 开发里面的话通常用代理主键 2.主键的生成策略 2.1概述 ? Hibernate中为了更好的维护数据, 提供很多种主键生成策略. 2.2 主键策略类型 increment :自动增长,适用类型:short,int,long类型主键.在多进程和集群下不要使用.用的不是数据库的自动增长, hibernate底层的增长策略,s

Hibernate知识点小结(二)

一.持久化对象和标识符    1.持久化类        配置完关系后,操作的实体对应的类,成为持久化类 (Customer) 2.持久化类标识符(oid:object id)        3.持久化类主键的生成策略        <id name="cust_id">            <generator class="native"></generator>                </id>    

Hibernate的session详解

一.hibernate的session介绍 Session 具有一个缓存, 位于缓存中的对象称为持久化对象, 它和数据库中的相关记录对应.Session 能够在某些时间点, 按照缓存中对象的变化来执行相关的 SQL 语句, 来同步更新数据库, 这一过程被称为刷新缓存(flush).也叫一级缓存.在 Session 接口的实现中包含一系列的 Java 集合, 这些 Java 集合构成了 Session 缓存. 只要 Session 实例没有结束生命周期, 且没有清理缓存,则存放在它缓存中的对象也不

32位汇编第四讲,干货分享,汇编注入的实现,以及快速定位调用API的数量(OD查看)

32位汇编第四讲,干货分享,汇编注入的实现,以及快速定位调用API的数量(OD查看) 昨天,大家可能都看了代码了,不知道昨天有没有在汇编代码的基础上,实现注入计算器. 如果没有,今天则会讲解,不过建议把昨天代码熟悉一遍(课程是紧跟着来的,请不要拉下任何一天,因为今天的知识, 可能就和昨天的知识挂钩,昨天的知识,和前天的挂钩.....,当然你如你懂汇编,不是新手,那么则可以直接往下看) 一丶远程线程注入,和汇编远程注入的区别 昨天的代码,大家可能看了(没看也没有关系,就是远程线程注入的代码,开发角