什么是DAO
DAO是Data Access Object数据访问接口...
数据访问..故明思异就是与数据库打交道...
是夹在业务逻辑与数据库资源中间...
在B/S体系结构中,一般将应用分为
l 表示层
l 业务逻辑层 调用封装的底层代码来实现对功能的操作
l 数据持久层 访问数据库的操作
对持久层的封装,就可以运用数据访问对象模式(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和数据传输对象类DTO(Data Transfer Object),
l 数据访问对象类封装了常用的操作,例如Update,remove,Create操作
l 数据传输对象类实现了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();
}
}
}
}
}
数据传输对象类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();
}
}
}
}}
理解数据访问对象(DAO)模式在软件开发中的应用
265

被折叠的 条评论
为什么被折叠?



