单表CRUD操作

存储:把对象模型变成关系模型
加载:关系模型变成对象模型(把数据库里的记录变成实体对象)

一、get和load区别

  • 在不考虑缓存的情况下,get方法会在调用之后立即向数据库发出sql语句,返回持久化对象;load方法会在调用后返回一个代理对象。该代理对象只保存了实体对象的id,直到使用对象的非主键属性时才会发出sql语句。
  • 查询数据库中不存在的数据时,get方法返回null,load方法抛出ObjectNotFoundException。

二、cglib代理:目标类的子类

语法:

1、继承目标类
2、覆写了目标类的所有get、set方法
3、在覆写的方法里,首先判断target是否为null,如果为null,就session.get(User.class,"主键") 访问数据库拿到记录封装到user对象,
把user对象的地址给target,然后就调用target.getName().....
如果不为null,就直接调用target.getName()

session.load(User.class,"id值")  //创建代理对象
没发sql语句,创建了user对象(代理对象),这个代理对象是user类的子类对象
特点:是目标类的子类对象,对user类的所有方法都进行了覆写(没有继承私有属性)

在代理对象中有个实例全局变量target

三、pojo实体类(也叫数据bean)

1、包声明
2、导入相应的包
3、类名和文件名相同
4、显示的无参构造方法
5、属性私有化,提供get,set方法
6、不能定义成final
7、提供无参的构造方法

四、删除:

session.delete(user);

执行完delete后,map和key里有记录,放到临时集合的deletion里
commit后,只把实体类在数据库中对应的记录删除了,user对象处于瞬时态
在session里的map里没有记录,user里有记录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,268评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,839评论 18 399
  • 今天想了想,照我现在的节奏,想写完这个故事估计得连载了,既然要连载,《认识八年的女孩,我要不要放手一搏!》...
    诶呦妈妈呀阅读 347评论 4 0
  • 猫_41de阅读 365评论 0 0
  • 一月二十六日 星期五 晴 今天宝贝要放寒假啦!这是小盆友们期盼已久的日子!可对于大人来说就有点...
    赵羽斐阅读 249评论 0 0