DAO设计模式

本文深入解析了DAO设计模式在简化J2EE数据层代码、提高程序可移植性方面的作用。详细介绍了数据库连接类、VO类、DAO接口、DAO实现类和DAO工厂类的构成与功能,并通过实例展示了如何使用DAO完成数据库操作,如添加、更新、删除和查询记录。

DAO设计模式:

1、DAO简介:

  DAO设计模式是属于J2EE数据层的操作,使用DAO设计模式可以简化大量代码,增强程序的可移植性。

2、DAO各部分详解:

DAO设计模式包括以下5个主要部分:

(1)、数据库连接类;

  数据库连接类的主要功能是连接数据库并获得连接对象,以及关闭数据库。通过数据库连接类可以大大的简化开发,在需要进行数据库连接时,只需常见该类的实例,并调用其中的方法就可以获得数据库连接对象和关闭数据库,不必再进行重复操作。例:

[java] view plaincopy

Package com.javaweb.dao1  

Import java.sql.*;  

Public class DataBaseConnection{  

      Private final String DBDRIVER = “com.mysql.jdbc.Driver”;  

      Private final String DBURL = “jdbc:mysql://localhost:3306/javaweb”;  

      Private final String DBUSER = “root””;  

      Private final String DBPASSWORD = “585762”;  

      Private Connection conn = null;  

      Public DataBaseConnection(){  

             Try{  

                    Class.forName(DBDRIVER);  

                    This.conn =  

                                 DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);  

             }catch(Exception e){  

                    System.out.println(“加载数据库驱动失败!”);  

             }  

      }  

      Public Connection getConnection(){  

             Return conn;  

      }  

      Public void close(){  

             Try{  

                    Conn.close();  

             }catch(){  

                    System.out.println(“数据库连接关闭失败!”);  

             }  

      }  

}  

(2)、VO类:

  VO类是一个包含属性和表中字段完全对应的类,并在该类中提供setter和getter方法来设置并获取该类中的属性。例:

[java] view plaincopy

Package com.javaweb.dao1  

Public classs User{  

      Private int userid;  

      Private String username;  

      Private String password;  

      Public int getUserid(){  

            Return userid;  

      }  

      Public void setUserid(int userid){  

             Return userid;  

      }  

      Public String getUsername(){  

            Return username;  

      }  

      Public void setUsername(String username){  

             Return username;  

      }  

      Public String getUserpassword(){  

            Return userpassword;  

      }  

      Public void setUserid(String userpassword){  

             Return userpassword;  

      }  

}  

(3)、DAO接口:

  DAO接口中定义了所有的用户操作,如添加记录、删除记录及查询记录等。不过因为是借口,所以仅仅是定义,需要子类实现。例:

[java] view plaincopy

Package com.javaweb.dao1;  

Import java.util.*;  

Public class UserDAO{  
       public void insert(User user)throw Exception;  

      Public void update(User user)throw Exception;  

      Public void delete(int userid)throw Exception;  

      Public User queryById(int userid)throw Exception;  

      Public List queryAll()throw Exception;  

}  

(4)、DAO实现类:

  DAO实现类实现了DAO接口,并实现了接口中定义的所有方法。

(5)、DAO工厂类:

  在没有DAO工厂类的情况下,必须通过创建DAO实现类的实例才能完成数据库操作。这时就必须知道具体的子类,对于后期的修改非常不方便。

  使用DAO工厂类,可以比较方便地对代码进行管理,而且可以很好地解决后期修改的问题,通过该DAO工厂类的一个静态方法来获取DAO实现类实例。这时如果要替换DAO实现类,只需要修改该Dao工厂类中的方法代码,而不必邀修改所有的操作数据库代码。例:

[java] view plaincopy

Package com.javaweb.dao1;  

Public class DAOFactory{  

      Public static UserDAO getUserDAOInstance(){  

             Return new UserDAOImpl();  

      }  

}  

3、使用DAO完成数据库操作:

(1)、添加记录:

(2)、更新记录:

(3)、删除记录:

(4)、查询记录:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值