您好,登錄后才能下訂單哦!
這篇文章主要介紹“MyBatis中一對一,一對多,多對一的用法”,在日常操作中,相信很多人在MyBatis中一對一,一對多,多對一的用法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MyBatis中一對一,一對多,多對一的用法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
MyBatis簡介
了解了MyBatis那么我們就來看看在Java中如何使用MyBatis做一對一,一對多,多對一查詢吧。
java實體類對象
public class Teacher {
private Integer id;
private String name;
private List<Student> students;
//......此處省略get,set方法
}
public class Student{
private Integer id;
private String name;
private Teacher teacher ;
//......此處省略get,set方法
}
Java Dao層代碼
/***一對一:查某個學生信息并且查出他的老師*/Student queryStudentInfoById(@Param("id") Integer id);/***一對多: 查某個老師并且查出老師所有的學生*/Teacher queryTeacherInfoById(@Param("id") Integer id);/***多對一:查詢所有同學并且查出同學對應的老師*/List<Student> queryStudentInfo();
一對一:查某個學生信息并且查出他的老師
<resultMap id="resultMap" type="com.test.Student">
<result column="id" jdbcType="INTEGER" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<association property="teacher" javaType="ArrayList" ofType="com.test.Student" select="getTeacherInfoByTeacherId" column="teacher_id"/>
</resultMap>
<select id="queryStudentInfoById" resultType="com.test.Student">
SELECT id,name,teacher_id FROM student WHERE id = #{id}
</select>
<select id="getTeacherInfoByTeacherId" resultType="com.test.Teacher">
select id,name from teacher where id = #{teacher_id}
</select>
一對多: 查某個老師并且查出老師所有的學生
<resultMap id="resultMap" type="com.test.Teacher">
<result column="id" jdbcType="INTEGER" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<collection property="students" javaType="ArrayList" ofType="com.test.Student" select="getStudentInfoByTeacherId" column="id"/>
</resultMap>
<select id="queryTeacherInfoById" resultType="com.test.Teacher">
SELECT id,name FROM teacher where id = #{id}
</select>
<select id="getStudentInfoByTeacherId" resultType="com.test.Student">
select id,name from student where teacher_id = #{id}
</select>
多對一:查詢所有同學并且查出同學對應的老師
<resultMap id="resultMap" type="com.test.Student">
<result column="id" jdbcType="INTEGER" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<association property="teacher" javaType="ArrayList" ofType="com.test.Student" select="getTeacherInfoByTeacherId" column="teacher_id"/>
</resultMap>
<select id="queryStudentInfo" resultType="com.test.Student">
SELECT id,name FROM student
</select>
<select id="getTeacherInfoByTeacherId" resultType="com.test.Teacher">
select id,name from teacher where id = #{teacher_id}
</select>
到此,關于“MyBatis中一對一,一對多,多對一的用法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。