DAO设计模式
2016-02-02 12:14
621 查看
什么是DAO
DAO是Data Access Object数据访问接口,数据访问:故名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。
DAO的功能:
DAO用来封装Data Source的……就比如,Connection conn = DAOFacotry.createConnection()……
就可以把Driver. URL. username, passpword这一些放在DAO中以后要更改数据库的类型。比如要把MSSQL换成Oracle的话……只需要更改DAOFacory里面的getConnection()里面的Driver.URL.之类的……
DAO也是把对数据库的操作(比如最基本的CRUD操作)全部封装在里面……
比如说你要你要插入一个新的用户……那么。在DAO中我们只需要提供一个insertUser(User user)这一个方法就可以了……具体的操作是在DAO中实现的……
那么对于要调用DAO的时候。我们只要知道insertUser(User)是用来插入一个新的用户……而不需要知道是如何实现的。
企业分层架构
客户层:因为现在都采用了B/S开发架构,所以一般都使用浏览器进行访问。
显示层:使用JSP/Servlet进行页面效果的显示
业务层:(Business Object,业务对象):会将多个原子性的DAO操作进行组合,组合成一个完整的业务逻辑。
数据层(DAO):提供多个原子性的DAO操作,例如:增加、修改、删除等,都属于原子性的操作。
具体参考文章:这里写链接内容
这里写链接内容
DAO是Data Access Object数据访问接口,数据访问:故名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。
DAO的功能:
DAO用来封装Data Source的……就比如,Connection conn = DAOFacotry.createConnection()……
就可以把Driver. URL. username, passpword这一些放在DAO中以后要更改数据库的类型。比如要把MSSQL换成Oracle的话……只需要更改DAOFacory里面的getConnection()里面的Driver.URL.之类的……
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数据层
具体参考文章:这里写链接内容
这里写链接内容
相关文章推荐
- Android 事件总线OTTO用法快速入门
- LeetCode 125 Valid Palindrome(有效回文)(*)
- 【ActiveMQ】设置自动重连
- 调试术语
- Linux 查看当前时间
- 如何产生真正随机数
- IOS-OC之高级组件PickerView之一
- html开发规范
- java.lang.NoClassDefFoundError: android.support.v7.recyclerview.R$styleable
- OpenGL ES学习笔记(一)——基本用法、绘制流程与着色器编译
- log4j源码阅读
- bootstrap
- 实现自己的print
- hibernate多对一单项关联
- NYOJ 1070 诡异的电梯【Ⅰ】 DP
- solr集成IK中文分词
- Vmware虚拟机Linux系统上从php环境搭建到wordpress的安装
- (12)瓦片地图
- 分布式日志分析系统构建实战(二)——ZooKeeper
- 导入过程中禁用约束