标签:
创建一个父类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