DAO设计模式

来源:互联网 发布:如何退出农村淘宝 编辑:程序博客网 时间:2024/06/07 18:18

什么是DAO

DAO是Data Access Object数据访问接口,数据访问:故名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。

DAO的功能:

  1. DAO用来封装Data Source的……就比如,Connection conn = DAOFacotry.createConnection()……

就可以把Driver. URL. username, passpword这一些放在DAO中以后要更改数据库的类型。比如要把MSSQL换成Oracle的话……只需要更改DAOFacory里面的getConnection()里面的Driver.URL.之类的……

  1. DAO也是把对数据库的操作(比如最基本的CRUD操作)全部封装在里面……

比如说你要你要插入一个新的用户……那么。在DAO中我们只需要提供一个insertUser(User user)这一个方法就可以了……具体的操作是在DAO中实现的……

那么对于要调用DAO的时候。我们只要知道insertUser(User)是用来插入一个新的用户……而不需要知道是如何实现的。

一般 DAO是与Abstract Factory模式一起来用的……Factory来建立数据库和定位具体的DAO(比如说是UserDao..CustomerDao..)..一般将getConnection设置为static..也可以把HibernateSessionFactory这一个公共类放在这一AbstractFactory类中去...public class DAOFactory {private static final SessionFactory sessionFacotory;// 定义一个TrheadLocal .static Session currentSession().....public UserDao getUserDAO() { return new UserDaoImpl(sesssion); }pulbic OtherDao getOtherDAO() { 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..........}

企业分层架构

这里写代码片

  客户层:因为现在都采用了B/S开发架构,所以一般都使用浏览器进行访问。
显示层:使用JSP/Servlet进行页面效果的显示
业务层:(Business Object,业务对象):会将多个原子性的DAO操作进行组合,组合成一个完整的业务逻辑。
数据层(DAO):提供多个原子性的DAO操作,例如:增加、修改、删除等,都属于原子性的操作。

  资源层主要是数据库的操作层,里面可以进行各种的数据存储,但是这些数据存储操作的时候肯定依靠SQL语句,之前也发现了,如果在一个程序中出现了过多的SQL语句直接操作,则jsp页面变得相当复杂,而且也不便于程序的可重用性。  可以通过一个专门的数据库的操作组件完成,那么这个就是数据层的功能 业务层是整个项目的核心。现在我们要学的是DAO数据层

具体参考文章:这里写链接内容
这里写链接内容

0 0