单表CRUD操作

2018-09-09  本文已影响0人  Mango_lxh

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

一、get和load区别

二、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里有记录

上一篇 下一篇

猜你喜欢

热点阅读