OID检索:
get和load都是通过id来查询数据的。
-
get:直接加载。一执行就会执行SQL语句。
-
load:懒加载。返回一个对象的代理。
- 生成javassist的代理对象。
还有一个问题:数据库的字符编码可eclipse的编码好像不一样,在无论什么类型的数据都显示为???
删除数据的两种方式:
-
先获取要删除的数据对象,然后调用delete()方法。
-
这种方式必须手动开关事物。在配置文件里面配置事物的自动提交是无效的。
-
配置文件里面配置的事物自动提交,只对insert有效。
-
-
先创建一个javabean对象,在调用delete方法删除。(推荐,性能更好)
- 创建对象也只是为了传递一个id值,delete方法底层会转化为delete语句操作数据库。
update:
方式一:通过get获取数据,调用set方法,事物提交,自动执行update语句。
-
直接调用setXXX(),来修改数据库即可。
-
session.update();可以写,可以不写。事物提交会自动修改。
- 有id会更新,没有id会报错。
-
缺点,其实是会更新表中的所有字段的,效率低。
-
方式二:自己封装bean对象,设置ID,需要调用update方法。
- 神奇的是这种方式不会执行update语句!!!!(后续)
-
saveorUpdate()方法也很神奇,前面调用了setXXX如果有id就会update,没有就会insert。
-
save():
- 有id会更新
网友评论