Session接口是负责所有数据基础更新操作与基础查询操作的主要接口,而SharedSessionConctract接口主要负责事务或者是数据查询操作的,那么本次的重点只在于Session接口上.
在Hibernate里面针对于数据的增加操作提供了两个方法:
●数据保存:
Serializable save(Object object)
返回的是这个保存数据ID
●数据更新或保存:
void saveOrUpdate(Object object)
在使用传统IDBC开发的时候有一点特别不好用,那么就是如果表中的字段为自动增长,要想取得增长后的ID则需要根据每个数据库的不同进行查询,但是如果有了Hibernate,它可以帮我们自动返回增长后的ID数据,同时这个数据也会自动的保存到POJO类里面.
一旦调用了save()方法,返回的一定是当前的ID数据,同时会自动在POJO类里面自动更新相应的属性
saveOrUpdate()方法没有返回结果,但是会在POJO类中自动保存相应的属性,如果设置了主键内容,就认为此操作是更新操作,如果没有设置主键则表示增加操作
数据查询操作
在Session接口里面定义的数据查询只是进行ID的查询操作,方法:
●参数作用:第一个设置要查询的参数类型,第二个是要查询的ID内容
<T> T load(Class<T> theClass, Serializable id)
在整个Hibermate里面把所有的ID类型都使用Serialiable来表示,所有要操作的类型都使用了Class类来表示,
查询操作Session只提供了根据ID查询的支持.
数据修改操作
数据的修改操作它提供的是完全的操作修改,修改的操作方法:
修改的操作方法:
修改的时候要接收要修改的对象内容,但是修改后没有返回值
void update(Object object)
数据删除操作
在Session接口里面提供有删除的操作方法public void delete(Object object),如果要删除则必须接收一个对象,但是可以在对象里面只设置主键即可删除,因为Hibernate可以自动通过对象找到对应的主键内容
总结
1.发现除了增加的根据ID查询之外的方法设计上都有问题,update()和delete()都缺少返回值,不知道是否删除或更新成功
2.所有的更新的更新操作都必须进行事务的提交,否则无法真正发出.