日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MyBatis-09MyBatis注解方式之@Update/@Delete

發布時間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MyBatis-09MyBatis注解方式之@Update/@Delete 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  • @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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。