================================== 修改多条账户记录,返回受影响的行数 ================================== 实现数据访问接口方法: // 针对t_account表的数据访问接口实现 @Repository public class AccountDao implements IAccountDao { @Resource // 注入JDBC模板 private JdbcTemplate jdbcTemplate; ... // 修改多条账户记录,返回受影响的行数 @Override public int modifyAccounts(List accounts) { // 定义SQL语句 String sql = "update t_account set account_name = ?, " + "account_type = ?, money = ?, remark = ?, " + "update_time = now(), user_id = ? where account_id = ?"; // 执行SQL语句 int nrows = jdbcTemplate.batchUpdate( sql, new BatchPreparedStatementSetter() { // 为第i条待更新记录设置参数 @Override public void setValues(PreparedStatement ps, int i) throws SQLException { // 第i条待更新记录 Account account = accounts.get(i); // 设置参数 ps.setString(1, account.getAccountName()); ps.setString(2, account.getAccountType()); ps.setDouble(3, account.getMoney()); ps.setString(4, account.getRemark()); ps.setInt(5, account.getUserId()); ps.setInt(6, account.getAccountId()); } // 获取待更新记录数 @Override public int getBatchSize() { return accounts.size(); } } ).length; // 所返回数组的长度即为受影响的行数 // 返回受影响的行数 return nrows; } ... } 编写测试用例: // 修改账户记录测试类 public class SpringJDBCTestModify extends SpringJDBCTest { @Resource // 注入数据访问对象 private IAccountDao accountDao; ... // 测试:修改多条账户记录,返回受影响的行数 @Test public void testModifyAccounts() { // 准备多条账户记录 List accounts = new ArrayList<>(); accounts.add(new Account( 1, "9558820834", "工商银行北京分行", 40000.0, "转账", 1)); accounts.add(new Account( 2, "9558877618", "工商银行上海分行", 50000.0, "退款", 1)); // 修改多条账户记录,返回受影响的行数 int nrows = accountDao.modifyAccounts(accounts); System.out.println(getClass().getName() + "." + Thread .currentThread().getStackTrace()[1].getMethodName() + ": " + nrows); } ... } 运行测试用例: cn.tedu.springjdbc.test.SpringJDBCTestModify.testModifyAccounts: 2 看库。