Spring框架的JdbcTemplate操作数据库
增删改操作都使用update操作数据库
public int update(String sql, @Nullable Object... args)
第一个参数为SQL语句,第二个参数为可变形参,可用Object[] args传递,或者直接传递对应的值。
以下是增删改查操作:
1.增
/**
* 根据id删除一条记录
* @param id
*/
@Override
public void delete(String id) {
String sql = "delete from t_user where id=?";
int update = jdbcTemplate.update(sql, id);
System.out.println(update);
}
增加多条记录(批量插入)
public int[] batchUpdate(String sql, List<Object[]> batchArgs)
其中,第一参数是sql语句,第二个参数是List集合,元素为类型Object[]数组
/**
* 插入多条记录
* @param batchArgs 为List集合,集合元素为Object[]数组
*/
@Override
public void batchAdd(List<Object[]> batchArgs) {
String sql = "insert into t_user(username,password,email) values(?,?,?)";
int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
System.out.println(Arrays.toString(ints));
}
2.删
/**
* 根据id删除一条记录
* @param id
*/
@Override
public void delete(String id) {
String sql = "delete from t_user where id=?";
int update = jdbcTemplate.update(sql, id);
System.out.println(update);
}
3.改
/**
* 修改一条记录
* @param user User对象
*/
@Override
public void update(User user) {
String sql = "update t_user set username=?,password=?,email=? where id=?";
Object[] args = {user.getUsername(),user.getPassword(),user.getEmail(),user.getId()};
int update = jdbcTemplate.update(sql, args);
System.out.println(update);
}
/**
* 修改用户密码
* @param user
* @return 返回影响的记录数
*/
@Override
public int updatePassword(User user) {
String sql = "update t_user set password=? where id=?";
Object[] args = {user.getPassword(),user.getId()};
int update = jdbcTemplate.update(sql, args);
return update;
}
4.查
查找共多少条记录
/**
* 查找共多少条记录
* @return 返回共有多少条记录
*/
@Override
public int query() {
String sql = "select count(*) from t_user";
//第二个参数为返回值类型(普通类型为包装类)
Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
return count;
}
根据id查找一条记录并返回
/**
* 根据id查找一条记录并返回
* @param id 用户id
* @return User对象
*/
@Override
public User query(String id) {
String sql = "select * from t_user where id=?";
Object[] args = {id};
//使用BeanPropertyRowMapper自动封装查询到的数据
//泛型中的Book指定数据类型
User user = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class),args);
return user;
}
查询多条记录并返回
/**
* 查找所有的用户
* @return 返回List<User>集合
*/
@Override
public List<User> findAllUser() {
String sql = "select * from t_user";
List<User> userList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class));
return userList;
}