结果类型方法
实体类
公共类订单{
私有长id;
私有字符串名称;
私密双保密;
//略
}
publicclasscustomextendsorders {
私有字符串名称;
隐私字符串sex;
私有字符串地址;
//略
}
UserMapper.xml
select u.name,u.sex,u.address,o.* from USER u left join ORDERS o
on u.id=o.user_id
结果映射方法
一对一关联
实体类
公共类事件{
私有Int id;
私有字符串名称;
私有Int cid;
私有类类类; //写也可以不写
//略
}
公共类类类{
私有Int id;
私有字符串名称;
//略
}
StudentMapper.xml
select s.id,s.name,s.cid,c.id cid,c.namecnamefromstudentsleftjoinclassroomc
on s.cid=c.id
一对多关联
实体类
公共类类类{
私有Int id;
私有字符串名称;
私有列表Stu列表;
//略
}
公共类事件{
私有Int id;
私有字符串名称;
//略
}
ClassroomMapper.xml
select c.id,c.name,s.id sid,s.namesnamefromclassroomcleftjoinstudents
on s.cid=c.id
结果类型,结果图总结:
结果类型:
角色:将查询结果一致地映射到每个sql列名、pojo属性名的pojo。
情况:展示常见明细记录。 例如,用户购买商品明细,将相关查询信息全部展示在页面上时,直接使用resultType将各记录映射到pojo,在前台遍历list(list中为pojo )即可。
结果图:使用关联和集合完成一对一和一对多的高级映射。 结果有特殊的映射要求。
关联:
角色:将相关查询信息映射到pojo对象。
如果:为了便于查询相关信息,可以使用关联将相关订单信息映射到用户对象的pojo属性。 例如,查询订单和关联用户信息。
不能使用resultType将查询结果映射到pojo对象的pojo属性。 根据查询遍历结果集的需要,选择是使用结果类型还是使用结果映射。
收集
角色:将相关查询信息映射到list集合。
如果:为了便于查询遍历相关信息,可以使用collection将相关信息映射到list集合。 例如,通过查询用户权限范围模块和模块下的菜单,使用collection将模块映射到模块列表,或将菜单列表映射到模块对象的菜单列表属性
如果无法使用resultType将查询结果映射到列表集合。
自动映射对1的相关查询
通过给对象之间的关系加上别名,连接对象属性和sql字段。
别名格式: `对象名称.属性名称`
其中`是mysql中除关键字外的内容
.点在sql命令中是关键字
实体类
公共类事件{
私有Int id;
私有字符串名称;
私有Int cid;
私有类类类; //写也可以不写
//略
}
公共类类类{
私有Int id;
私有字符串名称;
//略
}
StudentMapper.xml
select s.id,s.name,s.cid,c.id `classroom.id `,c.name `classroom.name `
fromstudentsleftjoinclassroomcons.cid=c.id