微服务 教程
1085个小节阅读:195.9k
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
查询学生时关联查询出班级也可以使用分解式查询,首先将查询语句分开:
xxxxxxxxxx
select * from student;
select * from classes where cid = ?;
xxxxxxxxxx
public interface StudentMapper {
// 查询所有学生
List<Student> findAll();
}
public interface ClassesMapper {
// 根据ID查询班级
Classes findByCid(int cid);
}
xxxxxxxxxx
<select id="findAll" resultType="com.itbaizhan.pojo.Student">
select *
from student
</select>
<select id="findByCid" resultType="com.itbaizhan.pojo.Classes" parameterType="int">
select * from classes where cid = ${cid}
</select>
xxxxxxxxxx
<resultMap id="MyStudentMapper" type="com.itbaizhan.pojo.Student">
<id property="sid" column="sid"></id>
<result property="name" column="name"></result>
<result property="age" column="age"></result>
<result property="sex" column="sex"></result>
<association property="classes"
javaType="com.itbaizhan.pojo.Classes"
select="com.itbaizhan.mapper2.ClassesMapper2.findByCid"
column="classId">
</association>
</resultMap>
<select id="findAll" resultMap="MyStudentMapper">
select *
from student
</select>
xxxxxxxxxx
public void testFindAllStudent2(){
StudentMapper2 studentMapper2 = session.getMapper(StudentMapper2.class);
List<Student> all = studentMapper2.findAll();
all.forEach(System.out::println);
}
1.N+1查询与连接查询相比,需要在<collection>
或<association>
中添加属性
A id
B select
C column
D property
1=>B