JPA没有专门的update接口,save接口同时支持update操作
一、save(单条添加)
Service层中添加save方法(save是三方件自带接口不需要再dao层中添加)
@Transactional
public User save(User user){
return userDao.save(user);
}
control层
/**
* 单条数据保存
* @param id 自增的,可以不填
* @param name
* @param age
* @return
*/
@GetMapping("/save")
public User save(Integer id,String name, Integer age){
User user = new User();
user.setId(id);
user.setName(name);
user.setAge(age);
return userService.save(user);
}
测试成功!(id是主键自增的,可以不填)
二、saveAll(批量添加)
Service层中添加save方法(save是三方件自带接口不需要再dao层中添加)
@Transactional
public <S extends User> List<S> saveAll(Iterable<S> entities) {
return userDao.saveAll(entities);
}
control层
/**
* 批量保存数据
* @param names
* @param ages
* @return
*/
@GetMapping("/saveAll")
public List<User> saveAll(String[] names,Integer[] ages){
List<User> list = new ArrayList<>();
for(int i=0;i<names.length;i++){
User user = new User();
user.setName(names[i]);
user.setAge(ages[i]);
list.add(user);
}
return userService.saveAll(list);
}
测试成功!(id是主键自增的,可以不填)
最后小结:
传入参数中有id:
判断id是否存在:
a)如果id存在,则进行update操作
b)如果id不存在,则新加的数据id为最后一个id+1(不管你写的id是多少)
例:数据库中最后一个id为10,你加的id是20,最后加入数据库的id还是11(不是20)
传入参数没有id:
直接在数据库中最后添加数据,id为最后数据的id+1