1. 程式人生 > >采用DTO和DAO對JDBC程序進行進一步優化

采用DTO和DAO對JDBC程序進行進一步優化

cti 使用 let 進一步 stub cep auto 修改 date

采用DTO和DAO對JDBC程序進行進一步優化

DTO:數據傳輸對象,主要用於遠程調用等需要遠程調用對象的地方
DAO:數據訪問對象,主要實現封裝數據庫的訪問,通過它可以把數據庫中的表轉換成DTO類

引入DTO其實就是新建實體類。

那麽DAO呢,就是封裝訪問數據的方法,比如對某一個表插入,更新,刪除等方法可以放進對應的dao中

代碼如下:

這是訪問User表所使用方法的接口,裏面放的是訪問過程中會使用到時方法

public interface UserDao {
    public void save(Connection conn,User user) throws SQLException;
    
    
public void update(Connection conn,User user) throws SQLException; public void delete(Connection conn, User user) throws SQLException; }

這是接口的具體實現類,具體實現那些訪問表的方法

public class UserDaoimpl implements UserDao {
    
    @Override
    public void save(Connection conn, User user) throws SQLException {
        
// TODO Auto-generated method stub PreparedStatement ps=conn.prepareCall("insert into tbl_user(name,password,email)" + "values(?,?,?)"); ps.setString(1, user.getName()); ps.setString(2, user.getPassword()); ps.setString(3, user.getEmail()); ps.execute(); } @Override
public void update(Connection conn, User user) throws SQLException { // TODO Auto-generated method stub PreparedStatement ps=conn.prepareCall("update tbl_user set name=?,password=?,email=? where name=?"); ps.setString(1, user.getName()); ps.setString(2, user.getPassword()); ps.setString(3, user.getEmail()); ps.setString(4, user.getName()); ps.execute(); } @Override public void delete(Connection conn, User user) throws SQLException { // TODO Auto-generated method stub PreparedStatement ps=conn.prepareCall("delete from tbl_user where id =?"); ps.setLong(1, user.getId()); ps.execute(); } }

我個人的感覺就是,如此優化以後,可復用的能力增強了。具體要實現或者需要修改時方便了很多。然後就是出現問題後,也便於找到是哪部分的問題,便於測試。

采用DTO和DAO對JDBC程序進行進一步優化