jdbcTemplate增删改查

883

介绍

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或更高版本。