MyBatis中多表查询(N+1方式)
生活随笔
收集整理的這篇文章主要介紹了
MyBatis中多表查询(N+1方式)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
N+1查詢方式
[1]什么是N+1的查詢方式
如果沒有N+1的方式我們想要實現(xiàn)多表的查詢,自己書寫查詢的業(yè)務(wù)邏輯代碼(java)
mybatis希望通過自己標簽配置的方式來解決這個問題
[2]執(zhí)行的操作
查詢學(xué)生所在班級的信息(一對一)
查詢班級中所有學(xué)生的信息(一對多)
使用的時候書寫標簽需要注意:
查詢出來返回的是一個對象:association
查詢出來返回的是一個集合:collection
接口
StudentMapper.java
ClazzMapper.java
public interface ClazzMapper {//查詢指定學(xué)生所在班級的信息Clazz selectOne(int clazzno);//查詢所有班級信息List<Clazz> selectAll(); }XML
StudentMapper.xml
ClazzMapper.xml
<select id="selectAll" resultMap="rm1">SELECT * from clazz</select><resultMap id="rm1" type="clazz"><id column="clazzno" property="clazzno"></id><result column="cname" property="cname"></result><!--select:調(diào)用哪一個xml中方法column:希望那一列作為參數(shù)進行傳遞ofType:集合的泛型property:把返回的數(shù)據(jù)整體賦值給哪一個屬性--><collection select="com.bjsxt.mapper.StudentMapper.selectMore"column="clazzno" ofType="student" property="li"></collection></resultMap>測試
//[4]執(zhí)行方法StudentMapper stuMapper = sqlSession.getMapper(StudentMapper.class);ClazzMapper claMapper = sqlSession.getMapper(ClazzMapper.class);//查詢所有學(xué)生所在的班級的信息/*List<Student> list = stuMapper.selectAll();for(Student stu:list){System.out.println(stu);}*///查詢所有班級中學(xué)生的信息List<Clazz> list = claMapper.selectAll();for(Clazz clazz:list){System.out.println(clazz);}總結(jié)
以上是生活随笔為你收集整理的MyBatis中多表查询(N+1方式)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qq绑定的手机号注销了怎么办
- 下一篇: 秦霄贤个人简介 秦霄贤的介绍