zoukankan      html  css  js  c++  java
  • DAO模式

    DAO设计模式:

    1、DAO简介:

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

    2、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)、查询记录:

     
     
  • 相关阅读:
    linux 使用crontab定时任务+shell脚本删除tomcat日志elasticsearch日志索引
    【转】Java8 Stream 流详解
    Mongo查询list数组中一个字段大于特定条数
    安装Elasticsearch出现 node validation exception 的问题处理
    mockito使用教程
    rocketmq4.4配置日志路径等级
    使用ResponseBodyAdvice统一包装响应返回String的时候出现java.lang.ClassCastException: com.xxx.dto.common.ResponseResult cannot be cast to java.lang.String
    服务器22端口连接超时 ssh: connect to host *** port 22: Operation timed out
    【JAVA基础】24 递归练习
    【JAVA基础】23 IO流-其他流
  • 原文地址:https://www.cnblogs.com/hoobey/p/5426687.html
Copyright © 2011-2022 走看看