DAO包括五个部分:
1. 数据库连接类 实现数据库连接封装的操作
2. javabean类 对应数据库中的表 每个bean对应一张表
3. DAO接口 定义了数据库的CURD等操作 用于给具体子类实现数据库操作
4. DAO实现类 实现DAO接口
5 . DAO工厂类 用来获取DAO实现类的实例 完成数据库操作 一般获取实例的方法为静态方法
相关名词解释:
DAO实现类:一般情况下,在这个类中只需要实现增删改查,尽量做到接口简单且细化,具体的业务组合放到真正的业务类中实现。这样多个数据库操作类和复用这个接口并且还有可能复用实现类的代码
DAO工厂类:
代码演示:
DAO各部分详解:
DAO设计模式包括以下5个主要部分:
(1)、数据库连接类;
数据库连接类的主要功能是连接数据库并获得连接对象,以及关闭数据库。通过数据库连接类可以大大的简化开发,在需要进行数据库连接时,只需常见该类的实例,并调用其中的方法就可以获得数据库连接对象和关闭数据库,不必再进行重复操作。例:
- 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方法来设置并获取该类中的属性。例:
- 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接口中定义了所有的用户操作,如添加记录、删除记录及查询记录等。不过因为是借口,所以仅仅是定义,需要子类实现。例:
- 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工厂类中的方法代码,而不必邀修改所有的操作数据库代码。例:
- Package com.javaweb.dao1;
- Public class DAOFactory{
- Public static UserDAO getUserDAOInstance(){
- Return new UserDAOImpl();
- }
- }
3、使用DAO完成数据库操作:
(1)、添加记录:
(2)、更新记录:
(3)、删除记录:
(4)、查询记录: