首先,我们先要理解一下相关知识点:
1、对象的序列化:Serializable
对象序列化是对象永久化的一种机制,可以把序列化当成一种深度克隆的方法,确切的说应该是对象的序列化,一般程序在运行时,产生对象,这些对象随着程序的停止运行而消失,但如果我们想把某些对象(因为是对象,所以有各自不同的特性)保存下来,在程序终止运行后,这些对象仍然存在,可以在程序再次运行时读取这些对象的值,或者在其他程序中利用这些保存下来的对象。这种情况下就要用到对象的序列化。一般对象序列化后会保存在存储设备(硬盘)上,以文件的形式出现。
2、CRUD
CRUD是增加、读取、更新和删除几个单词的首字母简写 即Create,Read,Update,Delete四个单词的缩写,主要被用在描述软件系统中数据库或者持久层的基本操作功能。
(In computing, CRUD is an acronym for
create, retrieve, update, and delete. It is used to refer to the basic
functions of a database or persistence layer in a software system.)
在进行Hibernate开发过程中,我们通常会使用DAO模式,有一些通用的数据操作方法,如CRUD,我们通常会将这些方法集中在一个DAO,这样会简便很多。DAO数据访问接口如下:
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;
public interface Dao {
List getObjects(Class clazz);//返回数据库中与此类对应的表的所有值,即entity类型中的所有信息
Object getObject(Class clazz, Serializable id);//返回与此类对应的表主键为id的所有值
Serializable saveObject(Object o);//序列化保存对象。
void updateObject(Object o);//更新此对象
void removeObject(Class clazz, Serializable id);//根据数据库中与此类对应表的主键(id)删除此对象
void removeObject(Object o);//删除此对象
void removeObjects(Collection objects);
/*
* 根据属性名和属性值查询对象,返回唯一对象
*/
Object findBy(Class clazz, String name, Object value);
/*
* 根据属性名和属性值查询对象,返回所以符合条件的对象
*/
List findAllBy(Class clazz, String name, Object value);
/**
* 根据Map中过滤条件和分页参数查询.
*
* @param filter 过滤条件.
* @param sortMap 排序条件.
* @param pageNo 当前页码
* @param pageSize 每页显示记录数.
*/
List findAllBy(Class clazz, Map filter, Map sorMap, int pageNo, int pageSize);
/**
* 符合filter过滤条件的记录总数
* @param clazz
* @param filter
* @return
*/
int total(Class clazz, Map filter);
}