Mybatis入门系列之(六)——注解

常用的四个注解:@Select,@Insert,@Update,@Delete

@Select

在tk.mybatis.simple.mapper.RoleMapper接口中增加如下方法:

/**
 * 根据id查询角色信息
 *
 * 数据库字段名和javaBean的属性名对应关系的解决办法:
 * 1. 查询使用别名
 * 2. 开启驼峰映射(配置 mapUnderscoreToCamelCase)
 * 3. 使用resultMap的方式
 * @param id
 * @return
 */
@Select("select id,role_name roleName,enabled," +
        "create_by createBy,create_time createTime " +
        "from sys_role where id = #{id}")
SysRole selectById(Long id);

/**
 * 根据id查询角色信息:使用resultMap的方式解决字段匹配问题
 * @param id
 * @return
 */
@Results(id="roleResultMap",value = {  @Result(property = "id",column = "id",id = true),
            @Result(property = "role_name",column = "roleName"),
            @Result(property = "enabled",column = "enabled"),
            @Result(property = "create_by",column = "createBy"),
            @Result(property = "create_time",column = "createTime")
        })
@Select("select id,role_name,enabled,create_by,create_time from sys_role where id = #{id}")
SysRole selectById2(Long id);

/**
 * 查询所有的角色
 *
 * @ResultMap("roleResultMap"),引用了方法selectById2上面定义的resultMap,通过id引用。
 * @return
 */
@ResultMap("roleResultMap")
@Select("select * from sys_role")
List<SysRole> selectAll();

测试代码略去。。。

@Insert

@Insert注解本身简单,但是如果需要返回主键值,情况变得复杂一点

  • 不需要返回主键

    /**
    * 添加一条记录,不返回主键
    * @param role
    * @return
    */
    @Insert("insert into sys_role(id,role_name,enabled,create_by,create_time) values" +
          "(#{id},#{roleName},#{enabled},#{createBy},#{createTime,jdbcType=TIMESTAMP})")
    int insert(SysRole role);
  • 返回自增主键

    /**
    * 添加一条记录,返回自增主键
    *
    * 和insert方法相比,插入语句少了id列
    *
    * @param role
    * @return
    */
    @Insert("insert into sys_role(role_name,enabled,create_by,create_time) values" +
          "(#{roleName},#{enabled},#{createBy},#{createTime,jdbcType=TIMESTAMP})")
    @Options(useGeneratedKeys = true,keyProperty = "id")
    int insert2(SysRole role);
  • 返回非自增主键

    /**
    * 添加一条记录,返回非自增主键
    *
    * 和insert方法相比,插入语句少了id列
    *
    * @param role
    * @return
    */
    @Insert("insert into sys_role(role_name,enabled,create_by,create_time) values" +
          "(#{roleName},#{enabled},#{createBy},#{createTime,jdbcType=TIMESTAMP})")
    @SelectKey(statement = "SELECT LAST_INSERT_ID()",before = false,keyProperty = "id",keyColumn = "id",resultType = Long.class)
    int insert3(SysRole role);

    测试代码略去……..

@Update

简单,直接看java代码:

/**
 * 根据id更新角色
 * @param role
 * @return
 */
@Update("UPDATE sys_role set " +
        "role_name = #{roleName}," +
        "enabled = #{enabled}," +
        "create_by = #{createBy}," +
        "create_time = #{createTime,jdbcType=TIMESTAMP}" +
        "where id = #{id}")
int updateById(SysRole role);

@Delete

简单,直接看java代码:

/**
 * 根据id删除角色
 * @param id
 * @return
 */
@Delete("delete from sys_role where id = #{id}")
int deleteById(Long id);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值