Hibernate框架session的方法
package Test; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration; import model.stud; public class testmain {
public static void main(String[] args) { //配置信息对象
Configuration config=new Configuration();
//配置全局对象
config=config.configure("hibernate.cfg.xml");
//创建session工厂
SessionFactory sessionfactory=config.buildSessionFactory();
//建立数据库会话
Session session=sessionfactory.openSession();
//获取事务对象
Transaction t=session.beginTransaction();
stud stu=new stud(null, "猪大肠", "123456", "嫖娼");
session.save(stu);
t.commit();
session.close();
}
}
以上是测试的基本配置
Session对象的方法
1.save:保存对象(就相当于sql语句里面的添加语句一样);
persist():保存一个对象,跟save作用一样(*如果手动设置了ID,则save方法会忽略ID,而persist方法会抛出一个异常)
2.get:根据OID获取对象(*根据id查询对象):
stud stud = session.get(stud.class, 1);
System.out.println(stud);
3.load:加载一个对象,跟get方法一样:
1.get会立即查询,而load不会立即查询,要等到调用到它时它才会去查询
2.load加载之后,如果session被管理,则直接抛出异常
3.如果数据库中没得响应的结果,则get会返回一个null,而load会直接抛出异常
stud stud=session.load(stud.class, 1);
System.out.println(stud);
4.clear:清空缓存
session.clear();
5.refresh.重新加载某个对象
6.evict:可以将某个被session管理的持久化对象,从session中移除,使其变为游离对象;
1.瞬时态:
存在于程序中,不存在数据库中,没有oid,不在session中
如下:
1 UserInfo userInfo = new UserInfo(88,"恶霸天","987654",30,"小鱼儿与花无缺","simalfishchild@qq.com");
2 System.out.println(userInfo);
2.游离态:
存在与程序中,存在与数据库中,有oid,不在session中
如下:
1 UserInfo userInfo3 = session.get(UserInfo.class, 4);
2 session.clear();
//修改密码
3 userInfo3.setPassWord("6666666");
3.持久态:
存在于程序中,存在于数据库中,有oid,在session中
如下:
UserInfo userInfo2 = session.get(UserInfo.class, 5);
7.close:关闭
session.close();
8.update:更新对象(游离),该对象会转变为持久化对象
//修改
session.update(userInfo);
9.delete:从数据库中删除一个对象, session的delete方法是通过主键进行删除的,主键不存在则异常,持久状态对象被delete后变成瞬时状态对象
session.delete(1);
10.saveOrUpdate:系统会判断该对象,如果是临时对象,就会执行保存操作,如果是游离对象,则执行更新操作
stud stu1=new stud(null, "王胖子", "123456", "嫖娼");
session.saveOrUpdate(stu1);
11.flush:发送让session对象SQL语句
以上方法本人已测试,如有写错的地方请大家指出
Hibernate框架session的方法的更多相关文章
- Hibernate(5)session的方法
1. Session缓存 Session缓存(Hibernate一级缓存),在 Session 接口的实现中包含一系列的 Java 集合, 这些 Java 集合构成了 Session 缓存.只要 Se ...
- 阅读Hibernate框架Session接口的源码的笔记
一.阅读Session接口的注释的理解.(看着注释翻译的,有些地方可能翻译的不太对,有疑问再看源文档) ①.Session的生命周期随着事务开始而开始,事务的结束而结束. 附原文:The lifecy ...
- Hibernate中Session.save()方法的返回值是什么
public Serializable save(Object object) Parameters: object - a transient insta ...
- Hibernate框架(一)——总体介绍
作为SSH三大框架之一的Hibernate,是用来把程序的Dao层和数据库打交道用的,它封装了JDBC的步骤,是我们对数据库的操作更加简单,更加快捷.利用Hibernate框架我们就可以不再编写重复的 ...
- Hibernate框架(一)总结介绍
作为SSH三大框架之一的Hibernate,是用来把程序的Dao层和数据库打交道用的,它封装了JDBC的步骤,是我们对数据库的操作更加简单,更加快捷.利用Hibernate框架我们就可以不再编写重复的 ...
- Hibernate框架之get和load方法的区别
我们在学习Hibernate框架时,经常会进行修改,删除操作,对于这些操作,我们都应该先加载对象,然后在执行或删除的操作,那么这里Hibernate提供了两种方法按照主键加载对象,也就是我要说的get ...
- Hibernate中Session之get和load方法的真正区别
最近在学习SHH框架中的hibernate,对Session的get和load方法,有点混不清楚,不知道区别在哪,或者对它们的区别感触不深.所以百度了一下,结果问题来了.百度的结果和实际测试的结果出入 ...
- 关于HttpSession 和 Hibernate框架中 session异同点的简单解析
快速理解: HttpSession中的session是一个容器用来盛基于会话机制的信息. 比喻:我把钱放进银行的保险柜里. 解析:我的钱就是我的信息,ID等 银行的保险柜就是session容器. Hi ...
- Hibernate,Session方法使得java对象进入持久化状态;持久化对象特征
以下情况java对象进入持久化状态: session.save()方法把临时对象转变为持久化对象. session.load()和session.get()方法得到的对象总是处于持久化状态. sess ...
随机推荐
- Luogu P4247 [清华集训2012]序列操作
题意 给定一个长度为 \(n\) 的序列 \(a\) 和 \(q\) 次操作,每次操作形如以下三种: I a b c,表示将 \([a,b]\) 内的元素加 \(c\). R a b,表示将 \([a ...
- win10 hyper-v的开启和关闭
一.开启: 1. 控制面板->程序->启用或关闭Windows功能,Windows功能中勾选hyper-v功能 2. powershell中使用管理员权限运行下面的命令 bcdedit / ...
- ipython notesbook 默认路径修改
Windows下,一个很简单的解决小方法! 改目录 前面很多回答已经说了怎么修改目录: 1.cmd: jupyter notebook --generate-config 2.找到 ~\.jupyte ...
- SYL数据库表关系图 AND 项目架构图
关系图(内容按照具体项目要求可以改) 项目架构图
- 基于虚拟机安装Linux并利用LVM创建磁盘分区
主要步骤:将磁盘设置为LVM类型,并在这四个分区上创建物理卷.卷组和逻辑卷,最后将逻辑卷挂载.电脑使用Windows10 企业版 LTSC 操作系统.虚拟机使用VMware15.5 pro . 1.安 ...
- Java入门(2)
阅读书目:Java入门经典(第7版) 作者:罗格斯·卡登海德 一个简单的计算平方根的程序: 1 package com.java24hours; 2 3 public class Root { 4 p ...
- vim实现CTRL+S为保存快捷键
用vim正撸代码撸的飞起,突然Xshell就掉线了,真是太蛋疼了. 于是开始怀念起vs下撸代码时随时随地ctrl+s保存的快捷键,百度了一下,网上的vim实现ctrl+s保存的快捷键设置都有问题,自己 ...
- Thinkphp3.2 cms之权限管理
五.权限管理 <?php namespace Admin\Controller; use Think\Controller; class CommonController extends Con ...
- 企业中真实需要的集中管理软件SVN即Subversion版本控制
一.SVN基本概念 SVN是Subversion的简称,是一个自由开源的版本控制系统. checkout: 把整个项目源码下载到本地 update: 从服务器上更新代码,使本地达到最新版本 commi ...
- linux之HTTP服务
1.基本的配置 httpd:俗称Apache (A pachey Server) /etc/httpd/conf/httpd.conf #配置文件 /etc/httpd/co ...