• @Update

    • 1. RoleMapper接口增加接口方法
    • 2. 单元测试
  • @Delete
    • 1. RoleMapper接口增加接口方法
    • 2. 单元测试

@Update

1. RoleMapper接口增加接口方法

    /*** * * @Title: updateSysRoleById* * @Description: updateSysRoleById* * @param sysRole* @return* * @return: int*/@Update({ "update sys_role set role_name = #{roleName},enabled = #{enabled},create_by = #{createBy},create_time = #{createTime, jdbcType=TIMESTAMP} where id = #{id}" })int updateSysRoleById(SysRole sysRole);

2. 单元测试

@Testpublic void updateSysRoleByIdTest() {logger.info("updateSysRoleByIdTest");// 获取SqlSessionSqlSession sqlSession = getSqlSession();try {// 获取RoleMapper接口RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);// 先根据ID查询出对应的sysRoleSysRole sysRole = roleMapper.selectSysRoleById((long) 1);// roleName期望为管理员Assert.assertEquals("管理员", sysRole.getRoleName());// 修改RoleNamesysRole.setRoleName("管理员Artisan");// 修改CreateBysysRole.setCreateBy("Artisan");// 修改用户 ,返回受影响的行数int result = roleMapper.updateSysRoleById(sysRole);// 只插入一条数据 ,期望是1Assert.assertEquals(1, result);logger.info("受影响的行数:" + result);// 期望的RoleName为管理员ArtisanAssert.assertEquals("管理员Artisan", sysRole.getRoleName());// 期望的CreateBy为ArtisanAssert.assertEquals("Artisan", sysRole.getCreateBy());logger.info("sysRole:" + sysRole);} catch (Exception e) {e.printStackTrace();} finally {// 为了保持测试数据的干净,这里选择回滚// 由于默认的sqlSessionFactory.openSession()是不自动提交的// 除非显式的commit,否则不会提交到数据库sqlSession.rollback();logger.info("为了保持测试数据的干净,这里选择回滚,不写入mysql,请观察日志,回滚完成");sqlSession.close();logger.info("sqlSession close successfully ");}}
2018-04-19 02:55:57,225  INFO [main] (BaseMapperTest.java:26) - sessionFactory bulit successfully
2018-04-19 02:55:57,230  INFO [main] (BaseMapperTest.java:29) - reader close successfully
2018-04-19 02:55:57,233  INFO [main] (RoleMapperTest.java:229) - updateSysRoleByIdTest
2018-04-19 02:55:57,726 DEBUG [main] (BaseJdbcLogger.java:145) - ==>  Preparing: SELECT a.id, a.role_name roleName, a.enabled, a.create_by createBy, a.create_time createTime FROM sys_role a WHERE a.id = ?
2018-04-19 02:55:57,799 DEBUG [main] (BaseJdbcLogger.java:145) - ==> Parameters: 1(Long)
2018-04-19 02:55:57,824 TRACE [main] (BaseJdbcLogger.java:151) - <==    Columns: id, roleName, enabled, createBy, createTime
2018-04-19 02:55:57,825 TRACE [main] (BaseJdbcLogger.java:151) - <==        Row: 1, 管理员, 1, 1, 2018-04-13 21:12:46.0
2018-04-19 02:55:57,828 DEBUG [main] (BaseJdbcLogger.java:145) - <==      Total: 1
2018-04-19 02:55:57,829 DEBUG [main] (BaseJdbcLogger.java:145) - ==>  Preparing: update sys_role set role_name = ?,enabled = ?,create_by = ?,create_time = ? where id = ?
2018-04-19 02:55:57,835 DEBUG [main] (BaseJdbcLogger.java:145) - ==> Parameters: 管理员Artisan(String), 1(Integer), Artisan(String), 2018-04-13 21:12:46.0(Timestamp), 1(Long)
2018-04-19 02:55:57,839 DEBUG [main] (BaseJdbcLogger.java:145) - <==    Updates: 1
2018-04-19 02:55:57,840  INFO [main] (RoleMapperTest.java:250) - 受影响的行数:1
2018-04-19 02:55:57,845  INFO [main] (RoleMapperTest.java:257) - sysRole:SysRole [id=1, roleName=管理员Artisan, enabled=1, createBy=Artisan, createTime=Fri Apr 13 21:12:46 BOT 2018, user=null, privilegeList=null]
2018-04-19 02:55:57,849  INFO [main] (RoleMapperTest.java:267) - 为了保持测试数据的干净,这里选择回滚,不写入mysql,请观察日志,回滚完成
2018-04-19 02:55:57,851  INFO [main] (RoleMapperTest.java:270) - sqlSession close successfully

@Delete

1. RoleMapper接口增加接口方法

/*** * * @Title: deleteSysRoleById* * @Description: deleteSysRoleById* * @param id* @return* * @return: int*/@Delete("delete from sys_role where id = #{id}")int deleteSysRoleById(Long id);

2. 单元测试

@Testpublic void deleteSysRoleByIdTest() {logger.info("deleteSysRoleByIdTest");// 获取SqlSessionSqlSession sqlSession = getSqlSession();try {// 获取roleMapper接口RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);// 调用删除接口int result = roleMapper.deleteSysRoleById((long) 1);// 期望影响的结果条数为 1Assert.assertEquals(1, result);// 再次查询SysRole sysRole = roleMapper.selectSysRoleById((long) 1);// 期望查询出来的sysRole 为 nullAssert.assertNull(sysRole);} catch (Exception e) {e.printStackTrace();} finally {// 为了保持测试数据的干净,这里选择回滚// 由于默认的sqlSessionFactory.openSession()是不自动提交的// 除非显式的commit,否则不会提交到数据库sqlSession.rollback();logger.info("为了保持测试数据的干净,这里选择回滚,不写入mysql,请观察日志,回滚完成");sqlSession.close();logger.info("sqlSession close successfully ");}}
2018-04-19 02:56:23,024  INFO [main] (BaseMapperTest.java:26) - sessionFactory bulit successfully
2018-04-19 02:56:23,027  INFO [main] (BaseMapperTest.java:29) - reader close successfully
2018-04-19 02:56:23,030  INFO [main] (RoleMapperTest.java:276) - deleteSysRoleByIdTest
2018-04-19 02:56:23,517 DEBUG [main] (BaseJdbcLogger.java:145) - ==>  Preparing: delete from sys_role where id = ?
2018-04-19 02:56:23,589 DEBUG [main] (BaseJdbcLogger.java:145) - ==> Parameters: 1(Long)
2018-04-19 02:56:23,596 DEBUG [main] (BaseJdbcLogger.java:145) - <==    Updates: 1
2018-04-19 02:56:23,599 DEBUG [main] (BaseJdbcLogger.java:145) - ==>  Preparing: SELECT a.id, a.role_name roleName, a.enabled, a.create_by createBy, a.create_time createTime FROM sys_role a WHERE a.id = ?
2018-04-19 02:56:23,599 DEBUG [main] (BaseJdbcLogger.java:145) - ==> Parameters: 1(Long)
2018-04-19 02:56:23,625 DEBUG [main] (BaseJdbcLogger.java:145) - <==      Total: 0
2018-04-19 02:56:23,628  INFO [main] (RoleMapperTest.java:299) - 为了保持测试数据的干净,这里选择回滚,不写入mysql,请观察日志,回滚完成
2018-04-19 02:56:23,631  INFO [main] (RoleMapperTest.java:302) - sqlSession close successfully

MyBatis-09MyBatis注解方式之@Update/@Delete相关推荐

  1. SpringBoot的MyBatis generator 注解方式和xml方式 (四)

    两种形式: XML方式 type="XMLMAPPER" 注解方式 type="ANNOTATEDMAPPER" 1.1 pom.xml里添加maven插件 & ...

  2. Spring整合Mybatis之注解方式,(注解整合Junit)

    Spring整合Mybatis之注解方式 我有一篇博客详细写了我自己使用xml的方法Spring整合MyBatis,现在我就把核心配置文件中的每个bean的配置使用注解的方式实现 注解整合MyBati ...

  3. 《Java从入门到放弃》框架入门篇:SpringBoot+mybatis使用注解方式实现mapper

    上一篇说到springboot+mybatis可以完全注解不用配置文件,本篇主要将mapper.xml文件改为纯注解方式. 原AuthorMapper.xml文件内容如下: <?xml vers ...

  4. MyBatis-05 MyBatis XML方式之update/delete元素

    概述 update 用法 UserMapper接口中增加接口方法 UserMapper.xml中配置update 元素 单元测试 delete用法 UserMapper接口中增加接口方法 UserMa ...

  5. Mybatis(17)注解方式增删改查单表

    IUserDao.java /*在mybatis中,CRUD一共有四个注解 * @Select @Insert @Update @Delete*/ public interface IUserDao ...

  6. Spring整合Mybatis注解方式

    Spring整合Mybatis(注解方式) 目录 Spring整合Mybatis(注解方式) 环境准备 纯注解方式 配置类具体内容 测试类具体内容 环境准备 jar包: Spring所需依赖:spri ...

  7. Mybatis—— 使用注解实现一对一复杂关系映射及延迟加载

    @Results 注解 代替的是标签<resultMap> 该注解中可以使用单个@Result 注解,也可以使用@Result 集合 @Results({@Result(),@Result ...

  8. SpringBoot 注解方式快速整合Mybatis

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:yizhiwazi www.jianshu.com/p/82 ...

  9. mysql+xml+注释,springboot整合mybatis完整示例, mapper注解方式和xml配置文件方式实现(我们要优雅地编程)...

    一.注解方式 pom org.mybatis.spring.boot mybatis-spring-boot-starter 2.0.0 mysql mysql-connector-java org. ...

最新文章

  1. stg游戏c语言,坦克大战改版
  2. windows下flink示例程序的执行
  3. VMware中High Availability (HA),的含义
  4. 【python】 读取Excel文件并绘制图表
  5. 【译】Google's AutoML: Cutting Through the Hype
  6. VTK:网格之SubdivisionDemo
  7. ajax headers 参数有什么用_动态爬虫(ajax)-爬取bilibili热门视频信息
  8. JasperReports JSF插件用例系列
  9. SessionHelper
  10. ftp搜索文件_Windows10下搭建FTP服务器详解(多图预警)
  11. 十、request.getSession( )、reqeust.getSession(false)和 request.getSession(true)
  12. 计算机it岗考试试题,计算机IT职称考试试题及其答案.doc
  13. OpenCV和java做人脸识别
  14. ocx注册以及检测(转)
  15. 推荐系统的因果关系感知邻域方法:Causality-Aware Neighborhood Methods for Recommender Systems(ECIR,2021)
  16. 动画:用动画给面试官解释 TCP 三次握手过程
  17. 用html代码写一个表白语言,HTML写代码表白 – 爱心
  18. 【微信小游戏开发 一】项目调研
  19. php面试题2--php面试题系列
  20. 浏览器无法访问某个网站,其他网站都正常

热门文章

  1. PCL:关于pcd数据显示乱码
  2. C++多继承(多重继承)详解(二)命名冲突
  3. 3d查看器无法加载三维模型_珠峰登顶成功,送套三维模型给你
  4. 126. Leetcode 剑指 Offer 46. 把数字翻译成字符串 (动态规划- 字符串系列)
  5. 机器学习笔记 (聚类) 层次聚类 Agglomerative Clutsering(Single-linkage、Complete-linkage,Group average)
  6. MATLAB从入门到精通-Matlab R2020b中的新标记符号(New-marker-symbols)
  7. 运营类产品:用户行为的影响因子是什么?
  8. 用Tableau画延展条形图(Extended Bar Chart)
  9. JAVA WEB知识总结之一--responserequest
  10. python前缀表达式求值_python数据结构与算法 11 后缀表达式求值