update用法:

  1.接口类中添加的方法:

    int updateById(SysUser sysUser);

  2.映射文件中添加的代码:

    <update id="updateById">
        UPDATE sys_user
        SET user_name=#{userName},
            user_password=#{userPassword},
            user_email=#{userEmail},
            user_info=#{userInfo},
            head_img=#{headImg,jdbcType=BLOB},
            create_time=#{createTime,jdbcType=TIMESTAMP}
        WHERE id=#{id}
    </update>

  3.测试代码:

        public void testInsert(){
            SqlSession sqlSession = getSqlSession();
            try{
                UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

                SysUser user = new SysUser();
                user.setUserName("test2");
                user.setUserPassword("123456");
                user.setUserEmail("test@mybatis.tk");
                user.setUserInfo("test info");
                user.setHeadImg(new byte[]{1,2,3});
                user.setCreateTime(new Date());

                int result = userMapper.insert(user);

                Assert.assertEquals(1,result);
                Assert.assertNull(user.getId());
            }finally {
                sqlSession.rollback();
                sqlSession.close();
            }
        }

delete用法:

  1.接口类中添加的方法:

    int deleteById(Long id);
    int deleteById(SysUser sysUser);

  2.映射文件中添加的代码:

    <delete id="deleteById">
        DELETE FROM sys_user WHERE id = #{id}
    </delete>

    <delete id="deleteById2">
        DELETE FROM sys_user WHERE  id = #{id}
    </delete>

  3.测试代码:

    @Test
    public void testUpdateById(){
        SqlSession sqlSession = getSqlSession();
        try{
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

            SysUser user = userMapper.selectById(1L);
            Assert.assertEquals("admin",user.getUserName());
            user.setUserName("junjie");
            user.setUserPassword("123456");
            user.setUserEmail("junjie@mybatis.tk");
            user.setUserInfo("junjie test info");

            int result = userMapper.updateById(user);
            Assert.assertEquals(1,result);
            user=userMapper.selectById(1L);
            Assert.assertEquals("junjie",user.getUserName());
        }finally {
            sqlSession.commit();
            sqlSession.close();
        }
    }

    public void testDeleteById(){
        SqlSession sqlSession = getSqlSession();
        try{
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);

            SysUser user = userMapper.selectById(1L);

            //System.out.println();
            //Assert.assertNotNull(user);
            //Assert.assertEquals(1,userMapper.deleteById(1L));

            //SysUser user2 = userMapper.selectById(1001L);

            //Assert.assertNotNull(user2);
            //Assert.assertEquals(1,userMapper.deleteById(user2));
            //Assert.assertNull(userMapper.selectById(1001L));
        }finally {
            sqlSession.rollback();
            sqlSession.close();
        }
    }

MyBatis从入门到精通:update用法、delete用法的更多相关文章

  1. MyBatis从入门到精通(四):MyBatis XML方式的基本用法之增删改

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. insert用法 1.1 简单的 ...

  2. MyBatis从入门到精通(五):MyBatis 注解方式的基本用法

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. @Select 注解 1.1 使 ...

  3. MyBatis从入门到精通(七):MyBatis动态Sql之choose,where,set标签的用法

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用choose, ...

  4. MyBatis从入门到精通(二):MyBatis XML方式的基本用法之Select

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. 明确需求 书中提到的需求是一个基 ...

  5. MyBatis从入门到精通(三):MyBatis XML方式的基本用法之多表查询

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 1. 多表查询 上篇博客中,我们示例的 ...

  6. MyBatis从入门到精通(六):MyBatis动态Sql之if标签的用法

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用if标签生成动 ...

  7. MyBatis从入门到精通(八):MyBatis动态Sql之foreach标签的用法

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解如何使用foreach ...

  8. MyBatis从入门到精通(第9章):Spring集成MyBatis(中)

    MyBatis从入门到精通(第9章):Spring集成MyBatis(中) 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法.应该将应用自身的设计和具体 ...

  9. MyBatis从入门到精通(十三):使用discriminator鉴别器映射

    最近在读刘增辉老师所著的<MyBatis从入门到精通>一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正,如帮助到你,不胜荣幸! 本篇博客主要讲解鉴别器映射discri ...

  10. MyBatis从入门到精通(第5章):5.4 Example 介绍

    jdk1.8.MyBatis3.4.6.MySQL数据库5.6.45.Eclipse Version: 2019-12 M2 (4.14.0) MyBatis从入门到精通(第5章):MyBatis代码 ...

随机推荐

  1. duilib菜单开发遇见“0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突”

    我的程序是这样一个逻辑. 首先创建用户列表,点击列表项弹出菜单,点击菜单上“设备选项”,弹出设备列表,上面显示这个用户拥有的设备. 菜单的创建参考了这为博主的教程:http://www.cnblogs ...

  2. Android零基础入门第65节:RecyclerView分割线开发技巧

    在上一期通过简单学习,已经领略到了RecyclerView的灵活性,当然都是一些最基础的用法,那么本期一起来学习RecyclerView的分割线使用. 相信有的比较细心的同学已经发现了,使用Recyc ...

  3. 中国自主X86处理器工艺跃进:国产28nm升级16nm(上海兆芯)

    提到X86处理器,世人皆知Intel.AMD,殊不知还有个VIA(威盛),在Intel反垄断世纪大战中VIA公司作为Intel霸权的受害者也最终确认了X86授权,不过VIA与前面两家的实力相差太远,X ...

  4. Morris 轻量级 图表

    Morris.js 是基于 jQuery 和 Raphaël 的轻量级矢量图形库,帮助开发人员轻松绘制各种形式的图表.示例: HTML: <div id="myfirstchart&q ...

  5. MSYS2 瘦身小攻略(使用junction)

    MSYS2, 吃硬盘的大神 MSYS2,集成了 x86 x64两个开发环境,且可以使用 pacman 进行包管理,可谓方便的很!可是,这个东东也有一个很不好的地方,就是实在太占硬盘.尽管下载的软件包一 ...

  6. 逆向工程mybatis-geneator.xml

    <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration ...

  7. 设置Windows服务的访问权限

    作者:beyond 默认情况下,只有管理员组成员.LocalSystem和Power Users组成员帐户才有权启动.停止服务.为了让普通用户也可以控制该服务,我们可以手动设置其访问权限.可能有些初学 ...

  8. Arcgis Server 10.4.1 搭建集群环境

    1.准备工作 Arcgis Server 10.4.1  以及许可一枚 共享存储(通过UNC路径访问,如"\\server1\arcgisserver\") 服务器两台(虚拟机也可 ...

  9. Asp.Net Core 项目 EntityFramework Core 根据登录用户名过滤数据

    1.创建ASP.NET Core Web Applicatoin (MVC)项目,并且使用 Individual User Account 2.创建数据筛选接口 Models->IDataFil ...

  10. 【转】解决Nginx php-fpm配置有误引起的502错误

    转自:https://www.centos.bz/2017/07/nginx-php-fpm-502-error/ 在Ubuntu+Nginx+PHP环境下部署好以后,访问网站报错502,在后台ngi ...