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 ");
            }
        }

  • 相关阅读:
    smarty对网页性能的影响--开启opcache
    1stopt8.0 代码示例
    1stopt、matlab和python用morris、sobol方法实现参数敏感性分析
    MATLAB 实现sobol参数敏感性分析
    matlab中自带的sobol的函数提供的sobol序列
    matlab和fortran混合编程
    mathematic语法基础
    fortran常用语句--读写带注释文档、动态数组等语法
    fortran语言调用fortran写的dll
    C语言函数指针与 c#委托和事件对比
  • 原文地址:https://www.cnblogs.com/ringqq/p/11714578.html
Copyright © 2011-2022 走看看