什么是DAO
DAO是Data Access Object数据访问接口,数据访问:故名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。
DAO的功能:
1. DAO用来封装Data Source的..就比如,Connection conn = DriverManager.getConnection(...) . . . . . .
就可以把DriverManager. username, passpword这一些放在DAO中
以后要更改 数 据 库 的类型.比如要把SQL Server换成Oracle的话..只需要更改DAO里面的getConnection()里面的连接字符串之类的..
2. DAO也是把对数据库的操作(比如最基本的更新, 添加等操作)全部封装在里面..
比如说你要你要插入一个新的用户..那么.在DAO中我们只需要提供一个insertUser(User user)这一个方法就可以了..具体的操作是在DaoImpl中实现的...
那么对于要调用DAO的时候.我们只要知道insertUser(User)是用来插入一个新的用户...而不需要知道是如何实现的。
一个典型的 DAO 实现有以下组件:
一个 DAO 工厂类
一个 DAO 接口
一个实现了 DAO 接口的具体类
数据传输对象(实体对象 , 比如 pet, dog, Penguin 等)
在设计 DAO 时,首先要思考以下问题:
程序如何开始?
程序开始需要干什么?
程序的过程?
程序如何结束?
程序结束又需要干什么?
Dao是否要负责程序的开始和结束
设计Dao模式
Dao接口: 位于dao包中, 把对数据库操作的所有方法定义在该接口中
Dao实现类:位于 dao.impl 包中 , 针对不同的数据库(比如SQLServer , Oracle 等不同数据库)给出Dao接口中定义的方法的具体实现
实体类: 位于 entity包中,作用是传递数据
通常还会增加一个数据库工具类,用于连接数据库和关闭资源等