持久化与Session定义


什么是Session
Hibernate中Session 是Hibernate中的缓存对象 用此session操作数据库后会缓存返回的结果在session里面 当你再次操作数据库的时候 如果session缓存里面有相应的值 则不用去与数据库交互直接返回结果

servlet 中的Session 也是缓存 其缓存你与服务器对话时候的一些信息

总之所有的session基本都是起缓存作用的 就是把一些信息缓存在内存中 方便存取值

但是不同的session是不能相互直接赋值的 因为是两个不同的概念 只是名字一样

名字一样也是为了帮助程序员理解 学了servlet的session 后再遇到session也就应该是缓存作用的
不知道我的回答你满意不

Hibernate中Session 是Hibernate中的缓存对象 用此session操作数据库后会缓存返回的结果在session里面 当你再次操作数据库的时候 如果session缓存里面有相应的值 则不用去与数据库交互直接返回结果

servlet 中的Session 也是缓存 其缓存你与服务器对话时候的一些信息

总之所有的session基本都是起缓存作用的 就是把一些信息缓存在内存中 方便存取值

但是不同的session是不能相互直接赋值的 因为是两个不同的概念 只是名字一样

名字一样也是为了帮助程序员理解 学了servlet的session 后再遇到session也就应该是缓存作用的


持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。

关键就是内存的数据会丢失,所以我们要把它保存在存储设备中,以便下次需要的时候可以再把数据取出来


什么是持久化对象

持久化对象(Persistence Object - PO)

任务:添加员工信息,员工字段比较多。

方法1:每个员工字段作为方法的一个参数
//DAO层
public class EmployeeDao{
...
public void addEmployee(Integer id, String name, String gender, Integer age){
//具体实现
}
...
}

//业务层
dao.addEmployee(1,"托尼","男",23);

缺点:如果增加一个字段,此方法的参数列表需要改变,也就是调用addEmployee()方法都需要改变。

方法2:不应该使用方法多个参数方式,而应该将字段都封装成一个对象,再传递。

//PO
public class Employee {
private Integer id;
private String name;
private String gender;
private Integer age;
//get/set method followed in the below
}

//DAO层
public class EmployeeDao{
...
public void addEmployee(Employee emp){
//具体实现
}
...
}

//业务层
Employee emp=new Employee();
emp.setId(1);
emp.setGender("男");
emp.setName("托尼");
emp.setAge(23);
dao.addEmployee(emp);

改进:如果增加一个字段,addEmployee()方法的参数并不需要改变,所有调用addEmployee()方法的地方都不需要改变。

PO小结:
此示例中的Employee类专门用于存放向数据库中的数据,保存表示将数据“持久化”,即Employee的对象是持久化对象,英文:Persistence Object,简称PO,PO不带任何业务逻辑

原文地址:https://www.cnblogs.com/mengyan/p/2717837.html