一、什么叫持久?
·所谓持久就是把数据(比如内存中的对象)等,保存到可以永久保存的存储设备中!
·持久最简单的直观理解就是就是对数据库的各项操作,如增删改查更新等!
二、什么是DAO?
·DAO说白了就是一种设计模式,当外部或者是完全不懂数据库的人只需要按照DAO实现者所提供的接口去调用相应的方法,而不需要关心底层对数据库操作的实现。DAO即为dataaccess object 数据访问对象,封装并对外提供操作数据库的服务!
三、DAO的几种模式:
·初级模式:
例如::写一个类 操作1张表 针对这张表的所有操作都以方法的形式写在这个类中 1个操作对应1个方法要求是外部通过调用这个类的方法达到操作某张表的目的时不需要写任何和数据库以及JDBC相关的代码,这个类的命名就是XXDAO
比如表叫做 t_goods 商品表那么操作它的DAO就叫GoodsDAO
·高级DAO模式:
例如:即DAO工厂模式,多个XXDAO实现同一个接口或者继承同一个基类,编写一个工厂类通过工厂模式(简单工厂模式或利用反射动态加载均可)获得接口或基类对象,内部实际上封装返回的是具体的XXDAO类的对象。简单的说即是在1的基础上将创建具体的XXDAO对象的方式由new变为工厂模式实现
例如:UserDAOdao = DAOFactory.create(...);
dao.save() dao.delete....
四、什么叫持久层?为什么要使用持久层?
·所谓持久层即对数据持久化操作的应用层
·为什么要分层呢?即:一个成熟的架构体系(通常分为大的3层:表现层,业务层,持久层),往往能够达到层与层之间耦合度达到最低,实现松耦合,高类聚的效果。也就是说层与层之间互不干扰,几乎完全独立,每个层独立分出来都能被当成是一个组件而重复使用。举个例子:严格按照规范进行分层的项目里,我可以让一个人只负责持久层开发,开发完成后写上注释,把类和接口打成一个JAR包。接着我让另一个人开发业务层,他要做的只是导入JAR包,打开注释文档,看着注释决定调用DAO里的哪个方法或者组装几个DAO方法再加上一些逻辑代码去完成一个业务的开发,他甚至可以不会HQL,SQL,不懂数据库都可以。