MyBatis 注解开发

MyBatis 注解开发

注解开发

  • 注解是用于描述代码的代码. 例如:@Test(用于描述方法
    进行 junit 测试), @Override(用于描述方法的重写),
    @Param(用于描述属性的名称)
  • 注解的使用风格: @xxx(属性), 使用前必须先导包
  • 使用注解一般用于简化配置文件. 但是, 注解有时候也不
    是很友好(有时候反而更麻烦), 例如动态 SQL.
  • 关于注解的属性
    • 属性的设定方式是: 属性名=属性值
  • 关于属性值的类型
    • 基本类型和 String, 可以直接使用双引号的形式
    • 数组类型, name={值 1, 值 2, …}; 如果数组元素只有
      一个, 可以省略大括号
    • 对象类型, name=@对象名(属性)
    • 如果属性是该注解的默认属性, 而且该注解只配置这
      一个属性, 可以将属性名省略
  • 注解和配置文件可以配合使用

常用注解

@Select: 类似于select标签

@Insert: 类似于insert标签

@Update: 类似于update标签

@Delete: 类似于delete标签

例如:

mapper包中接口这样定义:

@Select("select * from t_student")
List<Student> selAll();
@Insert("insert into t_student values (default, #{name}, #{age},
#{gender}, #{cid})")
int insStu(Student student);
@Update("update t_student set age=#{1} where id=#{0}")
int updStu(int id, int age);
@Delete("delete from t_student where id=#{0}")
int delStu(int id);

其他标签

@Results: 类似于resultMap标签

@Result: 类似于resultMap的子标签 id和result. 使用id属性来标识是否为主键

@One: 类似于association标签

@Mang: 类似于collection标签

示例:

在ClazzMapper中有接口如此定义

@Select("select * from t_class")
@Results(value = {
    @Result(property = "id", column = "id", id = true),
    @Result(property = "name", column = "name"),
    @Result(property = "room", column = "room"),
    @Result(property = "stus", many = @Many(select = "pers.jssd.mapper.StudentMapper.selByCid"), column = "id")
})
List<Clazz> selAll();

StudentMapper接口中有根据cid查询学生的定义

@Select("select * from t_student where cid = #{0}")
List<Student> selByCid(int cid);

可查出关联学生类的clazz

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值