Mybatis多表查询

Mybatis多表查询
一、创建VO多表查询:
1、二个实体类
/**
 * 学生
 * @author deer
 *
 */
public class Student {
	private Integer sno;//序号
	private String sname;//学生名
	private int sage;//年龄
}

/**
 * 班级
 * @author deer
 *
 */
public class Classx {
	private Integer cno;//序号
	private String csno;//学生ID
	private String cname;//班级名
	private int csc;//分数
}
2、VO类
/**
 * 学生 班级 VO 类
 * @author Deer
 *
 */
public class StudentClassVO {
	private Integer sno;//学生ID   如果没有设置主键,可能会被重叠覆盖返回一个结果集。
	private Student student;//学生对象
	private Classx classx;//班级对象
}

没有贴SetGet方法。太长了。
3、接口
/**
 * 创建接口
 * @author Deer
 *
 */
public interface VODao {
	List<StudentClassVO> queryVO();//无参返回List
}
4、Mapper
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<!-- namespace=接口所在位置 -->
<mapper namespace="com.zking.dao.VODao">
	<!-- 标签: resultMap=结果映射 ; 属性:id=唯一标识  type=类型 -->
	<resultMap id="BaseResultMap" type="com.zking.vo.StudentClassVO">
		<!-- 标签:id=主键/唯一标识; 属性: property=Class类字段    column=数据库字段 -->
		<id property="sno" column="sno"></id>
		<!-- 标签: association=联系(VO类中的对象);属性:property=Class中的字段   javaType=类型 -->
		<association property="student" javaType="com.zking.entity.Student">
             <id property="sno" column="sno"/>
             <result property="sname" column="sname"/>
             <result property="sage" column="sage"/>
         </association>
         <association property="classx" javaType="com.zking.entity.Classx">
             <id property="cno" column="cno"/>
             <result property="csno" column="csno"/>
             <result property="cname" column="cname"/>
             <result property="csc" column="csc"/>
         </association>
	</resultMap>
	<select id="queryVO" resultMap="BaseResultMap">
		select * from student stu,classx cx where stu.sno=cx.csno
	</select>
</mapper>
5、调用
@Controller
@RequestMapping("/")
public class SkipControlloer {
	@Autowired
	VODao vo;//自动注入
	
	@RequestMapping("{name}.html")//{name} 占位符
	public void skip(@PathVariable String name){//获取占位符中的值
		List<StudentClassVO> list2 = vo.queryVO();
		System.out.println();
	}
	
}
二、不创建VO,直接返回Map
1、接口加个方法
/**
 * 创建接口
 * @author Deer
 *
 */
public interface VODao {
	List<StudentClassVO> queryVO();//无参返回List
	
	List<Map> queryForMap();//无参返回List<Map>
}
2、Mapper中添加一个查询
	<!-- 属性:resultType=结果类型 -->
	<select id="queryForMap" resultType="java.util.HashMap">
		select * from student stu,classx cx where stu.sno=cx.csno
	</select>
3、调用
@Controller
@RequestMapping("/")
public class SkipControlloer {
	@Autowired
	VODao vo;//自动注入
	
	@RequestMapping("{name}.html")//{name} 占位符
	public void skip(@PathVariable String name){//获取占位符中的值
//		List<StudentClassVO> list2 = vo.queryVO();
		List<Map> list = vo.queryForMap();
		System.out.println();
	}
	
}








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值