J2EE开发人员使用数据访问对象(DAO)设计模式把底层的数据访问逻辑和高层的业务逻辑分开.实现DAO模式能够更加专注于编写数据访问代码。
DAO模式是标准的J2EE设计模式之一.开发人员使用这个模式把底层的数据访问操作和上层的商务逻辑分开.一个典型的DAO实现有下列几个组件:
1. 一个DAO工厂类;
2. 一个DAO接口;
3. 一个实现DAO接口的具体类;
4. 数据传递对象(有些时候叫做值对象).
具体的DAO类包含了从特定的数据源访问数据的逻辑。在下面的这段中你将学到设计和实现数据访问对象的技术。
事务划分:
关于DAO要记住的一件重要事情是它们是事务性对象。每个被DAO执行的操作(对象创建,更新、或删除数据)都是和事务相关联的。同样的,事务划分(transaction demarcation)的概念是特别重要的。
在DAO中是完全的面向对象的。其实面向对象的最初思想就是将数据和操作封装在一起,形成对象,而在DAO中正是体现了这一点,它将数据的值作为属性,数据的查询作为方法,数据值的变化作为事件,完全封装在DAO对象中。
二、数据访问对象DAO的功能
1. DAO用来封装Data Source的..就比如,Connection conn = DAOFactory.createConnection()..
就可以把Driver. URL. username,passpword这一些放在DAO中
以后要更改数据库的类型.比如要把MYSQL换成Oracle的话..只需要更改DAOFactory里面的getConnection()里面的Driver.URL.之类的..
2. DAO也是把对数据库的操作(比如最基本的CRUD操作)全部封装在里面..
比如说你要插入一个新的用户..那么.在DAO中我们只需要提供一个insertUser(User user)这一个方法就可以了..具体的操作是在DAO中实现的...
那么对于要调用DAO的时候.我们只要知道insertUser(User)是用来插入一个新的用户...而不需要知道是如何实现的..
一般 DAO是与Abstract Factory模式一起来用的...
Factory来建立数据库和定位具体的DAO(比如说是UserDao..CustomerDao..)..一般将getConnection设置为static..也可以把HibernateSessionFactory这一个公共类放在这一AbstractFactory类中去...
详细可转到:
https://baike.baidu.com/item/DAO/2900358?fr=aladdin