在JdbcTemplate中执行SQL语句,可以通过以下方法进行:
- update():执行INSERT、UPDATE、DELETE语句,返回影响的行数:
int count = jdbcTemplate.update("UPDATE user SET name = ? WHERE id = ?", "John", 1);
- queryForObject():执行查询语句,将结果映射为对象或基本类型:
String name = jdbcTemplate.queryForObject("SELECT name FROM user WHERE id = ?", String.class, 1);
int count = jdbcTemplate.queryForObject("SELECT COUNT(*) FROM user", Integer.class);
- query():执行查询语句,将结果映射为List:
List<User> users = jdbcTemplate.query("SELECT * FROM user",
(rs, rowNum) -> new User(rs.getInt("id"), rs.getString("name"))
);
- queryForMap():将结果映射为Map:
Map<String, Object> user = jdbcTemplate.queryForMap("SELECT * FROM user WHERE id = ?", 1);
- execute():执行任意SQL语句,没有返回值:
jdbcTemplate.execute("CREATE TABLE user (id INTEGER, name VARCHAR(50))");
所以,JdbcTemplate可以通过不同的方法灵活执行各种SQL语句,包括DDL、DML、查询等,相比直接使用JDBC API,代码更简洁易读。