码迷,mamicode.com
首页 > 数据库 > 详细

JDBC学习笔记(20):将DAO中的修改方法提取到抽象父类中

时间:2015-04-05 21:52:36      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

创建一个父类AbstractDao,通过传入更新语句和参数可以动态执行更新操作,与具体的对象无关。

 1 package com.xxyh.jdbc.dao.refactor;
 2 import java.sql.Connection;
 3 import java.sql.PreparedStatement;
 4 import java.sql.ResultSet;
 5 import java.sql.SQLException;
 6 import com.xxyh.jdbc.JdbcUtils;
 7 import com.xxyh.jdbc.dao.DaoException;
 8 public abstract class AbstractDao {
 9     
10     /**
11      * 动态更新
12      * @param sql 更新语句
13      * @param args 需要传入的参数
14      * @return 返回结果条数
15      */
16     public int update(String sql, Object[] args) {
17         Connection conn = null;
18         PreparedStatement ps = null;
19         ResultSet rs = null;
20         try {
21             conn = JdbcUtils.getConnection();
22             ps = conn.prepareStatement(sql);
23             
24             for (int i = 0; i < args.length; i++)
25                 ps.setObject(i+1, args[i]);
26             
27             return ps.executeUpdate();
28         } catch (SQLException e) {
29             throw new DaoException(e.getMessage(),e);
30         } finally {
31             JdbcUtils.close(rs, ps, conn);
32         }
33     }
34 }

实现更新user的方法:

package com.xxyh.jdbc.dao.refactor;
import com.xxyh.jdbc.domain.User;
public class UserDaoImpl extends AbstractDao{
    
    public void update(User user) {
        String sql = "udpate user set name=?,birthday=?,money=? where id=?";
        Object[] args = new Object[] {user.getName(),user.getBirthday(),
                user.getMoney(),user.getId()};
        super.update(sql, args);
    }
}

 

JDBC学习笔记(20):将DAO中的修改方法提取到抽象父类中

标签:

原文地址:http://www.cnblogs.com/xiaoxiaoyihan/p/4394782.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!