zoukankan      html  css  js  c++  java
  • Mybatis注解

    一.mybatis注解关键词

    @Insert : 插入sql , 和xml insert sql语法完全一样
    @Select : 查询sql,  和xml select sql语法完全一样
    @Update : 更新sql,  和xml update sql语法完全一样
    @Delete : 删除sql,  和xml delete sql语法完全一样
    @Param :  入参
    @Results : 结果集合
    @Result : 结果

    @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. 单元测试
    @Test
        public void updateSysRoleByIdTest() {
            logger.info("updateSysRoleByIdTest");
            // 获取SqlSession
            SqlSession sqlSession = getSqlSession();
            try {
                // 获取RoleMapper接口
                RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);

                // 先根据ID查询出对应的sysRole
                SysRole sysRole = roleMapper.selectSysRoleById((long) 1);
                // roleName期望为管理员
                Assert.assertEquals("管理员", sysRole.getRoleName());

                // 修改RoleName
                sysRole.setRoleName("管理员Artisan");
                // 修改CreateBy
                sysRole.setCreateBy("Artisan");
                // 修改用户 ,返回受影响的行数
                int result = roleMapper.updateSysRoleById(sysRole);

                // 只插入一条数据 ,期望是1
                Assert.assertEquals(1, result);
                logger.info("受影响的行数:" + result);

                // 期望的RoleName为管理员Artisan
                Assert.assertEquals("管理员Artisan", sysRole.getRoleName());
                // 期望的CreateBy为Artisan
                Assert.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 ");
            }
        }

    @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. 单元测试
    @Test
        public void deleteSysRoleByIdTest() {
            logger.info("deleteSysRoleByIdTest");
            // 获取SqlSession
            SqlSession sqlSession = getSqlSession();
            try {
                // 获取roleMapper接口
                RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);

                // 调用删除接口
                int result = roleMapper.deleteSysRoleById((long) 1);
                // 期望影响的结果条数为 1
                Assert.assertEquals(1, result);

                // 再次查询
                SysRole sysRole = roleMapper.selectSysRoleById((long) 1);
                // 期望查询出来的sysRole 为 null
                Assert.assertNull(sysRole);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                // 为了保持测试数据的干净,这里选择回滚
                // 由于默认的sqlSessionFactory.openSession()是不自动提交的
                // 除非显式的commit,否则不会提交到数据库
                sqlSession.rollback();
                logger.info("为了保持测试数据的干净,这里选择回滚,不写入mysql,请观察日志,回滚完成");

                sqlSession.close();
                logger.info("sqlSession close successfully ");
            }
        }

  • 相关阅读:
    1.Oracle实例和Oracle数据库(Oracle体系结构)
    04.SQL基础-->分组与分组函数
    SYSAUX表空间满的解决方法
    Linux 软件安装到 /usr,/usr/local/ 还是 /opt 目录?
    Python学习-八周五次课(12月15日)
    ELK安装
    Python学习-八周二次课(12月12日)
    Python学习-八周一次课(12月11日)
    Python学习——七周四次课(12月7日)
    Python学习-复习7次课(12月4日)
  • 原文地址:https://www.cnblogs.com/ringqq/p/11714578.html
Copyright © 2011-2022 走看看