Session的get和load方法、delete、update

OID检索:

get和load都是通过id来查询数据的。
  • get:直接加载。一执行就会执行SQL语句。

  • load:懒加载。返回一个对象的代理。

    • 生成javassist的代理对象。
image.png

还有一个问题:数据库的字符编码可eclipse的编码好像不一样,在无论什么类型的数据都显示为???

删除数据的两种方式:

  1. 先获取要删除的数据对象,然后调用delete()方法。

    • 这种方式必须手动开关事物。在配置文件里面配置事物的自动提交是无效的。

    • 配置文件里面配置的事物自动提交,只对insert有效。

  2. 先创建一个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会更新
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,708评论 0 4
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,157评论 1 32
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,220评论 6 13
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,464评论 0 9
  • 一. Java基础部分.................................................
    wy_sure阅读 3,846评论 0 11