工厂模式之DAO
来源:互联网 发布:cms 编辑:程序博客网 时间:2024/04/20 03:10
在平时应用中,跟数据库打交道是很必然的,很多应用开发中都要对数据库进行操作,例如查询、更新、插入、删除等等,但在应用中我们如何做到提供一个非常好的接口,以便之后的维护呢?其实有很多种做法,现在我简单介绍一下得用DAO来对数据库的常用操作进行处理。
ManagerDAO,EngineerDAO,WorkerDAO extends UserDAO
由UserDAOFactory生产ManagerDAO,EngineerDAO,WorkerDAO
而UserDAOFactory又继承自DAOFactory
/*
*功能:此类利用配置文件来配置数据库的驱动以及用户名、密码等,
*使其功能更加完善,便于以后复用,可用于任何数据库的连接
*/
public Class DAOFactory
{
private string configPath = ””;//配置文件的路径
public Connection getConnection()
{
读取配置文件,生成一个Connection;
}
}
/*
*功能:此类继承自DAOFactory,然后可生成各应用中的DAO,使维护更加方便,
*若在之后的开发中,想更换数据库,则不用修改这个文件,只修改配置文件就OK了
*/
public class UserDAOFactory extends DAOFactory{
public ManagerDAO getManagerDAO(){
ManagerDAO mdao = new ManagerDAO();
Connection conn = getConnection();
mdao.setConnection(conn);
}
public EngineerDAO getEngineerDAO(){
EngineerDAO edao = new EngineerDAO();
Connection conn = getConnection();
edao.setConnection(conn);
}
public WorkerDAO get WorkerDAO (){
WorkerDAO wdao = new WorkerDAO ();
Connection conn = getConnection();
wdao.setConnection(conn);
}
}
/*
*功能:为同一模块中的应用提取公共属性及方法,只提供数据常用操作的方法接口,
*同子类具体根据不同情况实现其功能
*/
Public class UserDAO{
protected Connection conn;
public void setConnection(Connection conn) {
db.setConn(conn);
this.conn = conn;
}
public void close(){
if (conn != null) {
try {
conn.close();
conn = null;
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public abstract User add(User user);
public abstract User updateById(String userId);
public abstract User queryById(String userId);
public abstract Connection queryAllRecords();
public abstract deleteById(String userId);
}
/*
*功能:此类继承自UserDAO,实现父类定义的抽象方法
*/
public class ManagerDAO extends UserDAO{
public User add(User user){
在这里进行插入数据库表的操作
}
public User updateById(String userId){
根据userId更新数据库表
}
public User queryById(String userId){
根据userId搜索数据库表
}
public Collection queryAllRecords(){
查询数据库表中的所有记录
}
public Boolean deleteById(String userId){
根据userId删除数据库表记录
}
……
还有根据具体的需求写一些具体的操作方法
}
public class EngineerDAO extends UserDAO{
public User add(User user){
在这里进行插入数据库表的操作
}
public User updateById(String userId){
根据userId更新数据库表
}
public User queryById(String userId){
根据userId搜索数据库表
}
public Collection queryAllRecords(){
查询数据库表中的所有记录
}
public Boolean deleteById(String userId){
根据userId删除数据库表记录
}
……
还有根据具体的需求写一些具体的操作方法
}
public class WorkerDAO extends UserDAO{
public User add(User user){
在这里进行插入数据库表的操作
}
public User updateById(String userId){
根据userId更新数据库表
}
public User queryById(String userId){
根据userId搜索数据库表
}
public Collection queryAllRecords(){
查询数据库表中的所有记录
}
public Boolean deleteById(String userId){
根据userId删除数据库表记录
}
……
还有根据具体的需求写一些具体的操作方法
}
在这个模块中应还有如下几个类:User,Worker,Engineer,Manager,其中Worker,Engineer,Manager 继承自User,在User中定义那三个类的公共部分。
在本文中只简单的介绍了用户模块的简单设计,结合各自应用可以按照这种设计方式设计其他各个模块。其中应用中的各个模块的工厂DAO都继承自DAOFactory,这样所有数据库的配置都只受配置文件影响,若在应用中想更换数据库,则只需更换配置文件,不需要再修改程序,很好的利用了面向对象的思想。
- 工厂模式之DAO
- 工厂模式之DAO设计
- Dao工厂模式
- 大话设计模式读后感之工厂方法模式(DAO工厂)
- 浅谈DAO工厂设计模式
- Java Dao工厂设计模式
- 浅谈DAO工厂设计模式
- JDBC使用DAO工厂模式
- DAO设计模式+工厂模式(Factory)
- JDBC之Dao模式
- 浅谈java中dao工厂设计模式
- 第十九章 JDBC_使用DAO工厂模式
- 浅谈java中dao工厂设计模式
- Dao工厂模式(代码比较好)
- DAO层与Service业务逻辑层的解耦实现之Factory工厂模式
- 设计模式之 抽象工厂 封装业务逻辑层和Dao层
- DAO(dao工厂)
- J2EE之DAO设计模式
- ajax验证
- 安装配置XNA开发环境
- ajax动态网叶
- 自动表单填写
- The Top HR Questions
- 工厂模式之DAO
- 网页聊天室
- 个人简历
- 精妙SQL语句
- 编写你自己的单点登录(SSO)服务
- 半糖程序
- 英语日常用语集锦!
- 开源软件介绍及体会(二)
- mysql数据库入门