================================== 增加单条账户记录,返回新账户的标识 ================================== 实现数据访问接口方法: // 针对t_account表的数据访问接口实现 @Repository public class AccountDao implements IAccountDao { @Resource // 注入JDBC模板 private JdbcTemplate jdbcTemplate; ... // 增加单条账户记录,返回新账户的标识 @Override public int addAccountHasId(Account account) { // 定义SQL语句 String sql = "insert into t_account (account_name, " + "account_type, money, remark, create_time, update_time, " + "user_id) values (?, ?, ?, ?, now(), now(), ?)"; KeyHolder keyHolder = new GeneratedKeyHolder(); // 主键持有器 // 执行SQL语句 jdbcTemplate.update(connection -> { // 预编译SQL语句,令其可以返回主键 PreparedStatement ps = connection.prepareStatement( sql, Statement.RETURN_GENERATED_KEYS); // 设置参数 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()); // 返回预编译对象 return ps; }, keyHolder); // 返回被插入记录的主键,即新账户的标识 return keyHolder.getKey().intValue(); } ... } 编写测试用例: // 增加账户记录测试类 public class SpringJDBCTestAdd extends SpringJDBCTest { @Resource // 注入数据访问对象 private IAccountDao accountDao; ... // 测试:增加单条账户记录,返回新账户的标识 @Test public void testAddAccountHasId() { // 准备单条账户记录 Account account = new Account( "9556610408", "中国银行", 8000.0, "绩效", 2); // 增加单条账户记录,返回新账户的标识 int accountId = accountDao.addAccountHasId(account); System.out.println(getClass().getName() + "." + Thread .currentThread().getStackTrace()[1].getMethodName() + ": " + accountId); } ... } 运行测试用例: cn.tedu.springjdbc.test.SpringJDBCTestAdd.testAddAccountHasId: 7 看库。