jdbcTemplate增删改查
介绍
JdbcTemplate是Spring Framework中JDBC操作的核心类,可以用其来执行所有常规的SQL操作,包括查询、插入、更新和删除等。
用法
以下是JdbcTemplate的一些基本用法:
1.增加记录
public int insertUser(User user) {
String sql = "INSERT INTO user (id, name, age, address) VALUES (?, ?, ?, ?)";
int result = jdbcTemplate.update(sql, user.getId(), user.getName(), user.getAge(), user.getAddress());
return result;
}
2.删除记录
public int deleteUser(int id) {
String sql = "DELETE FROM user WHERE id = ?";
int result = jdbcTemplate.update(sql, id);
return result;
}
3.更新记录
public int updateUser(User user) {
String sql = "UPDATE user SET name = ?, age = ?, address = ? WHERE id = ?";
int result = jdbcTemplate.update(sql, user.getName(), user.getAge(), user.getAddress(), user.getId());
return result;
}
4.查询记录
public List<User> getUsers() {
String sql = "SELECT * FROM user";
List<User> users = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class));
return users;
}
其中 BeanPropertyRowMapper 是一个行映射器,可以将查询结果集中的每一行映射到指定的JavaBean对象中。
BeanPropertyRowMapper
BeanPropertyRowMapper驼峰映射
如果数据库表中列名使用下划线分割单词,而JavaBean中属性采用驼峰命名规则,可以通过在BeanPropertyRowMapper的构造函数中传入一个名为underscoreToCamelCase的布尔值来实现字段名的转换。如果为true,则会将下划线分割的字段名转换为驼峰命名格式的属性名;如果为false,则不进行转换。
例如,假设数据库表中有一个字段名为user_name,对应的JavaBean中的属性名为userName,代码如下:
public List<User> getUsers() {
String sql = "SELECT * FROM user";
List<User> users = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(User.class, true));
return users;
}
在这个例子中,我们通过将true传递给BeanPropertyRowMapper的构造函数,实现了数据库中下划线的字段名自动转换为JavaBean中的驼峰命名格式。注意,为了使此功能生效,需要使用Spring JDBC 4.3或更高版本。