博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
session对象详解
阅读量:3907 次
发布时间:2019-05-23

本文共 1192 字,大约阅读时间需要 3 分钟。

Session

在这里插入图片描述

Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。

Hibernate中Session对象是非线程安全的 ,不能定义成全局变量, 只能定义成局部变量。

Session代表的是Hibernate与数据库的链接对象,是与数据库交互的桥梁。

●Session中的API

■保存方法:       ▲Serializable save(Object obj)   Serializable可序列话  其实是ID     Customer customer = new Customer();    	customer.setCust_name("cc");    	try {    		Serializable id = seesion.save(customer);    		System.out.println(id);		} catch (Exception e) {			System.out.println(e);			// TODO: handle exception		}

结果:

■查询方法:

在这里插入图片描述

▲T get(Class c,Serializable id);

▲T load(Class c,Serializable id);
get 和load的区别 :

get方法

采用的立即加载,代码执行的时候,就马上发送 sql语句去查询,查询后返回真正的实体,当查询一个找不到的对象会返回为null

load方法

采用的是延时加载(lazy懒加载),代码执行到的时候,不发送sql语句,当真正用到对象时候才会发送sql.查询后是代理对象。javassist-3.18.1-GA.jar 利用javasisit技术的代理,查询一个找不到的对象 ,返回ObjectNotFoundException

■修改的方法:

▲void update(Object obj)

在这里插入图片描述

■删除的方法:

▲void delete(Object obj)

在这里插入图片描述

■保存或更新:

▲void saveOrUpdate(Object obj)

在这里插入图片描述

■查询:

▲ SQLQuery createSQLQuery(String queryString);

▲Query createQuery(String queryString);

写sql和hql都是可以的
在这里插入图片描述


作者:叫我18岁的骚年

来源:CSDN
原文:
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的文章
CENTOS 6.5 配置YUM安装NGINX
查看>>
#ifdef DEBUG的理解
查看>>
Linux 任务控制的几个技巧( &, [ctrl]-z, jobs, fg, bg, kill)
查看>>
慧眼云:基于云计算和大数据分析的主动防御实践
查看>>
58集团监控业务实践:将网站运行信息透明化
查看>>
给Django用户的SQLAlchemy介绍
查看>>
consul http api
查看>>
如何定位问题
查看>>
使用火焰图分析CPU性能回退问题
查看>>
openresty lua zlib整合安装 让lua支持解压服务端压缩过的数据
查看>>
Nginx与Gzip请求
查看>>
最佳日志实践(v2.0)
查看>>
logstash日志分析的配置和使用
查看>>
Nginx问题定位之监控进程异常退出
查看>>
https://imququ.com/post/content-encoding-header-in-http.html
查看>>
字符编码的前世今生
查看>>
视频笔记:Go 抓包、分析、注入 - John Leon
查看>>
linux下模拟丢包,延时命令总结
查看>>
java的字符流简单介绍
查看>>
初识java的xml
查看>>