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