DAO模式学习笔记

转:http://blog.csdn.net/anysky130/article/details/2254934

DAO是Data Access Object数据访问接口。DAO模式是jsp中的一个比较好的,设计思路比较清楚的一个模式.学习后,感觉很好.就把这个模式的自己的理解写下来.以后再用的时候,就方便了.

DAO模式,只使用了jsp,javabean两个东东.javabean主要处理业务逻辑,比方说,连接数据库,对数据库进行各种操作,都可以写在里面.它的代码重用性是很高的.一个bean,处处可用.
DAO模式可以分为VO和DAO。
VO(value object)是一个javabean,称为值对象,里面写进get,set方法。在调用一个参数时,方便之用。
DAO里面有两个部分,一个是接口,一个是实现这个接口的类。
它的写作思路是(自己的理解):
   1、先处理VO。写入相关参数的get,set方法。
   2、再处理DAO。用一个很清楚的思路,把要处理的方法,比方说,连接数据库、插入数据库、删除数据库等方法,写进这个接口。以便在类中对其进行实现。在这里,接口中的抽象方法,可以在以后要用到时,直接在往里加,所以我觉得它的扩展性很好。
   3、第三就是写DAOFactory,DAO工厂。DAO工厂的好处就是可以在页面里,直接用Factroy来调用每一个实例子类的各个方法。实现业务逻辑与数据库资源的分离。这里说明一下,没有这个Factory,jsp和javabean之间的耦合比较紧密。这是它的缺点。而在DAO中加入Factory后,就实现了jsp与javabean的解耦合。使用简单工厂模式,返回数据库存取的接口类型,通过其getInstance()方法获得数据库存取的实际实现类,这样在使用数据库存储对象时,只需通过factory对象获得实例即可。 
   3、就是对每个接口进行具体实现了。实现每个接口中的抽象方法。
   4、再写jsp页面。当在用到哪个方法时,直接用一个<jsp:useBean class=”” id=”” >来调用就行了。很是方便呀!

DAO 模式是标准 J2EE 设计模式之一。开发人员用这种模式将底层数据访问操作与高层业务逻辑分离开。一个典型的 DAO 实现有以下组件:

  • 一个 DAO 工厂类
  • 一个 DAO 接口
  • 一个实现了 DAO 接口的具体类
  • 数据传输对象(有时称为值对象)

DAO中的工厂具体使用方法:

(转!谢谢!)public class DAOFactory {

private static final SessionFactory sessionFacotory;

// 定义一个TrheadLocal .

static Session currentSession()…..

public UserDao getUserDAOInstance() { return new UserDaoImpl(sesssion);}

pulbic OtherDao getOtherDAOInstance() { return new OtherDaoImpl(session);}

……

}

public interface UserDao {

public insertUser(FormBean)

public updateUser(FormBean);

}

然后就实现DAO的接口: (Struts的FormBean…VO来的..)

public class UserDaoImpl implements UserDao {

private Session session;

public UserDaoImpl(Session session){

this.session = session;

}…

public insertUser(FormBean) {

..//..

session.save(UserPO);

..//..

return FormBean;

}

public FormBean updateUser(FormBean) {

..//..

session.update(UserPO);

..//..

return FormBean;

}

}

最后定义你的PO:

public class UserPO {

String firstname, lastname, password……….

}

 

在引用一个实例时,使用:DAOFactory.getUserDAOInstance().insertUser(FormBean);即实现了调用子类的insertUser(FormBean)方法;