Mybatis-複雜查詢
阿新 • • 發佈:2021-12-23
1.環境搭建
Student.java:
package com.kakafa.pojo;
import lombok.Data;
@Data
public class Student {
private int id;
private String name;
//學生需要關聯一個老師
private Teacher teacher;
}
Teacher.java:
package com.kakafa.pojo; import lombok.Data; @Data public class Teacher { private int id; private String name; }
TeacherMapper:
package com.kakafa.dao; import com.kakafa.pojo.Teacher; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; public interface TeacherMapper { @Select("select * from mybatistest.teacher where id=#{tid}") Teacher getTeacher(@Param("tid") int id); }
TeacherMapper.xml(這次把*Mapper.xml放到Resources的同名目錄下):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kakafa.dao.TeacherMapper">
</mapper>
MyBatis-config.xml:
<!--注意這裡報錯Could not find resource com/kakafa/dao/*.xml,是因為他使用的是註解查詢。註解查詢mapper對映應該用class而不是用resource-->
<mappers>
<mapper class="com.kakafa.dao.TeacherMapper"/>
<mapper class="com.kakafa.dao.StudentMapper"/>
</mappers>
test:
<!--注意這裡報錯Could not find resource com/kakafa/dao/*.xml,是因為他使用的是註解查詢。註解查詢mapper對映應該用class而不是用resource-->
<mappers>
<mapper class="com.kakafa.dao.TeacherMapper"/>
<mapper class="com.kakafa.dao.StudentMapper"/>
</mappers>
2.多對一的處理
2.1子查詢(巢狀):
2.2聯表查詢
3.一對多的處理
實體類環境改動:
3.1 聯表查詢
介面:
TeacherMapper.xml:
測試結果:
3.2 子查詢(巢狀)
測試結果: