MyBatis 注解
- 注解目的是为了简化配置文件
- Mybatis注解的作用:
简化 mapper.xml 文件
注:如果涉及动态 SQL 依然使用 mapper.xml - mapper.xml 和注解可以共存
- 使用注解时 mybatis.xml 中mappers标签使用方法
<package/>
<mapperclass=""/>
- 实现查询
@Select("select * from teacher")
List<Teacher> selAll();
- 实现新增
@Insert("insert into teacher values(default,#{name})")
int insTeacher(Teacher teacher);
- 实现修改
@Update("update teacher set name=#{name} where id=#{id}")
int updTeacher(Teacher teacher);
- 实现删除
@Delete("delete from teacher where id=#{0}")
int delById(int id);
- 使用注解实现 resultMap 标签功能
以 N+1 举例
- 在 StudentMapper 接口添加查询
@Select("select * from student where tid=#{0}")
List<Student> selByTid(int tid);
- 在 TeacherMapper 接口添加
@Results() 相当于<resultMap>
@Result() 相当于<id/>或<result/>
@Result(id=true) 相当与<id/>
@Many() 相当于<collection/>
@One() 相当于<association/>
@Results(value={
@Result(id=true,property="id",column="id"),
@Result(property="name",column="name"),
@Result(property="list",column="id",many=@Many(select="com.youdian.mapper.StudentMapper.selByTid"))
})
@Select("select * from teacher")
List<Teacher> selTeacher();