项目基于前博客。
1.单条更新
在接口UserDao文件下添加接口:
void updateUser(UserModel userModel);
在UserController下添加方法:
@RequestMapping(value = "/updateUser", method = RequestMethod.GET)
public void updateUser(@RequestParam("userName") String userName,
@RequestParam(value = "userAge",defaultValue = "0") Integer userAge){
UserModel user = new UserModel();
user.setId(1);
user.setUserAge(userAge);
user.setUserName(userName);
userDao.updateUser(user);
}
在mapper的UserDAO.xml添加数据库sql:
<update id="updateUser" parameterType="com.lml.helloworld3.pojo.UserModel">
update user_first SET user_name=#{userName},user_age=#{userAge}
where id=#{id}
</update>
测试成功!
2.批量更新
在接口UserDao文件下添加接口:
void updateUsers(List<UserModel> users);
在UserController下添加方法:
@RequestMapping(value = "/updateUsers", method = RequestMethod.GET)
public void updateUsers(){
List<UserModel> list = new ArrayList<>();
UserModel user1 = new UserModel();
user1.setId(1);
user1.setUserAge(111);
user1.setUserName("up1");
list.add(user1);
UserModel user2 = new UserModel();
user2.setId(2);
user2.setUserAge(222);
user2.setUserName("up2");
list.add(user2);
userDao.updateUsers(list);
}
在mapper的UserDAO.xml添加数据库sql:
<update id="updateUsers" parameterType="java.util.List">
<foreach collection="list" separator=";" item="cus">
update user_first set
user_name = #{cus.userName},
user_age = #{cus.userAge}
where id = #{cus.id}
</foreach>
</update>
如果在批量的情况下抛出BadSqlGrammarException,是因为数据库只允许一条sql。
解决方法:可在jdbc.properties下添加allowMultiQueries=true。

测试成功!
网友评论