美文网首页
mybatis的update的实现

mybatis的update的实现

作者: 简单Liml | 来源:发表于2018-12-14 11:18 被阅读29次

项目基于前博客。
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。


image.png

测试成功!

相关文章

网友评论

      本文标题:mybatis的update的实现

      本文链接:https://www.haomeiwen.com/subject/wpbwhqtx.html