Session 步骤

Session 方法??该属性默认为 false,当配置该属性为 true 时,Hibernate在update对象前就会生成一条select??

Session 方法
??该属性默认为 false,当配置该属性为 true 时,Hibernate在update对象前就会生成一条select
??语句来查询该对象,然后比较该对象的状态是否发生改变的情况来判断是否要生成 update 语句。
??当然对同一个对象的多次 update 操作,不会生成多条 update 语句,只有在Session清理缓存的
??时候才会根据对象状态的改变而生成 一条 SQL语句。
??应根据实际的应用情况来使用该属性,如果Java对象的属性状态不会经常发生改变,使用该数据
??可以减少不必要的 update ,这样会响应提高程序的性能,如果经常改变对象的状态还是不使用
??该属性的好。
??
?saveOrUpdate:
??该方法会根据对象的状态来对其进行不同的操作,如果方法传入的是一个临时态对象,就save。
??如果是一个游离态对象就update,如果是一个持久化对象就返回。那么,如果一个对象满足以下
??任何一个条件,那么这个对象就是一个临时态的对象。
??
??(1):Java对象的 oid 为 null
??(2):对象具有 version 属性并取值为 null
??(3):映射文件中为 <id> 元素设置了 unsaved-value 属性,并且该id与配置的属性值匹配。
????<id name="" column="" unsaved-value=0>
?????<generator class="increment"></generator>
????</id>
??(4):映射文件中为 version 属性配置了 unsaved-value ,并且该属性值与配置的值相匹配。
??(5):自定义了Hibernate 中 Interceptor 的实现类,并且该 interceptor 类的isUnsaved()
????方法返回值为 true。
??
?get load :
??这两个方法都能从数据库中查询一条记录,并返回一个持久化的对象。区别在与,如果数据库中
??没有一条记录与要查询的对象 id 对应,load 方法会抛出 ObjectNotFoundException 异常,而
??get 方法会返回 null。
?
?delete:
??该方法是删除一个与对象对应的数据库记录,如果传人是 持久化对象 就会在清理缓存时执行delete
??语句,在Session.close时从缓存中删除该对象。如果传入的是 游离态 对象,Session会先关联该
??对象,使其转换为 持久态 对象,然后执行一个delete语句。
??
??delete ("from table where id > 5"); 方法重载,删除多条记录。

??