以下笔记均摘自OneNote的原始笔记,想要获取格式更好的OneNote原始笔记,以及相应的配套视频请访问http://hqyrbl.cn
Session
Session类的常用方法
save()
将对象中的数据保存到表
JavaBean中代表主键的属性,不需要设置,即便设置了也没有任何效果,如下
update()
根据主键id更新数据,若没有则会报错
saveOrUpdate()
在保存对象中的数据时,若发现指定了id,并且该id在表的主键中存在,那么就会更新该行数据,反之,就会插入一行新的数据
get()
从表中获取数据,第一个参数是JavaBean的class,第二个参数是表中的主键
load()
和get()一样,最终也是从表中获取数据,如下
从表面上看不出什么区别,但实质上的区别在于,load只有在访问对象中的数据的时候,才会去连接数据库,而get只要一调用,就会去连接数据库,所以load
的好处在于,可以避免频繁连接数据库,减少数据库的压力
证明load和get的区别
get
返回的user就是User对象
load
user对象是如下这个代理类,可以理解为hibernate默认给我们生成了一个User的实现类