Dao模式相信程序员xdjm都应该知道,一个非常经典的模式
用了很长时间,在此总结一下.
一.什么是DAO
DAO是DataAccessObject数据访问接口,
二.DAO的功能:
<v:shapetype id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" filled="f" stroked="f" coordsize="21600,21600" o:spt="75"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" o:extrusionok="f" gradientshapeok="t"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>
1.与数据库打交道。夹在业务逻辑与数据库资源中间。
2.DAO是把对数据库的操作(比如最基本的CRUD操作)全部封装在里面.
三.DAO的实现
1.一个DAO工厂类;
2.一个DAO接口;
3.一个实现DAO接口的具体类;
4.数据传递对象VO(有些时候叫做值对象).<o:p></o:p>
如果使用一些框架如spring+hibernate<o:p></o:p>
只需写dao的接口和实现即可以了,而且jdk1.5已经支持泛型,可以写一个BaseDaoSupport,<o:p></o:p>
把常用的通用的方法抽象出来,这样写dao就更简单了.<o:p></o:p>
四.DAO的好处<o:p></o:p>
非常常用的写法Service+Dao<o:p></o:p>
1. 数据库操作代码(Dao)和业务逻辑代码(Service)分开
2 .DAO层有助于分层结构的清晰
3.Service中可以操作多个dao,进行多表操作.,如果用spring的声明事务,可以把多表操作纳入到一个事务当中.
4.便于在不用数据库实现间的切换,如果有这种需求.
5.有利于项目开发时的功能划分和工作分配, 项目维护时也更容易定位问题
6.降低耦合, 易维护
关于Dao的使用,每个人都有自己的看法,总之简单实用就好.<o:p></o:p>