JdbcTemplate提供了常用的数据库操作方法,主要有:
- update():执行更新(插入、修改、删除)操作。
String sql = "INSERT INTO user (name, age) VALUES (?, ?)";
jdbcTemplate.update(sql, "John", 30);
- queryForMap():执行查询并返回Map,通常查询一行数据。
String sql = "SELECT * FROM user WHERE id = ?";
Map<String, Object> user = jdbcTemplate.queryForMap(sql, 1);
- queryForList():执行查询并返回List,通常查询多行数据。
String sql = "SELECT * FROM user";
List<Map<String, Object>> users = jdbcTemplate.queryForList(sql);
- query():执行查询并自定义返回结果类型,通过RowMapper实现。
String sql = "SELECT * FROM user WHERE age > ?";
List<User> users = jdbcTemplate.query(sql, new Object[] {20},
(rs, rowNum) -> new User(rs.getString("name"), rs.getInt("age"))
);
- queryForObject():执行查询并返回单个对象,查询条件应该只返回一行数据,否则会抛出异常。
String sql = "SELECT COUNT(1) FROM user";
Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
- batchUpdate():批量执行SQL语句,尤其用于批量插入、删除等操作。
String sql = "INSERT INTO user (name, age) VALUES (?, ?)";
List<Object[]> batchArgs = Arrays.asList(
new Object[] {"John", 30},
new Object[] {"Amy", 20}
);
jdbcTemplate.batchUpdate(sql, batchArgs);
除此之外,JdbcTemplate还提供了事务管理、连接管理等方法。这些方法可以满足日常的数据库操作需求,简化JDBC的代码复杂度。