DAO模式

来源:互联网 发布:vb里布尔型数据 编辑:程序博客网 时间:2024/05/22 17:27

什么是DAO

DAO是Data Access Object数据访问接口...

数据访问..故明思异就是与数据库打交道...

是夹在业务逻辑与数据库资源中间...


在B/S体系结构中,一般将应用分为
表示层
业务逻辑层   调用封装的底层代码来实现对功能的操作
数据持久层   访问数据库的操作
 
对持久层的封装,就可以运用数据访问对象模式(DAO ,Data Access Object),它将从数据源(广义)获取与操纵数据的方法进行抽象.


DAO的功能:

1. DAO用来封装Data Source的..就可以把Driver. URL. username, passpword这一些放在DAO中
2. DAO也是把对数据库的操作全部封装在里面..
比如说你要你要插入一个新的用户..那么.在DAO中我们只需要提供一个insertUser(User user)这一个方法就可以了..具体的操作是在DAO中实现的...
那么对于要调用DAO的时候.我们只要知道insertUser(User)是用来插入一个新的用户...而不需要知道是如何实现的..


DAO模式的核心是数据访问对象类DAO数据传输对象类DTOData Transfer Object),
数据访问对象类封装了常用的操作,例如Update,remove,Create操作
数据传输对象类实现了java.io.Serialable接口,包含数据属性和数据的set/get操作(类似JavaBean)

数据传输对象类DTO:
public class UserDTO   implements java.io.Serializable {
  
//fields----------------------------------------
  private java.lang.Integer userId;
  
private java.lang.String username;
  
private java.lang.String password;

      ~~~get和set方法~~~
}

数据访问对象类DAO:
public class UserDAO{
public void createUser(UserDTO user) {
    Connection con 
= null;
    Statement stmt 
= null;
    ResultSet rs 
= null;

    
try {
      Class.forName(Driver);
      con 
= DriverManager.getConnection(theurl, username, password);
      String sql 
= "insert into user(userId,username,password) values ("
          
+ user.getUserId() + ","
          
+ "'" + user.getUsername() + "'" + ","
          
+ "'" + user.getPassword() + "'"
          
+ ")";
      stmt 
= con.createStatement();
      stmt.execute(sql);
    }

    
catch (Exception sqlex1) {
      sqlex1.printStackTrace();
    }

    
finally {
      
if (con != null){
        
try {
          con.close();
        }

        
catch (SQLException sqlex2){
          sqlex2.printStackTrace();
        }

      }

    }

  }

}


原创粉丝点击