关于MyBatis多对多关联查询只查出一条数据

关于MyBatis多对多关联查询只查出一条数据


在MyBatyis中经常需要在多表之间进行关联,在其它配置都正确没有问题的情况下,控制台输出查询记录的时候可能会只出现了一条数据。笔者最近在进行查询时就出现了这一问题,只输出了一条记录,将sql语句放到MySQL执行确没有问题,以下是部分代码和xml配置:

部分表的sql语句

stu表的属性为:sno,sname,ssex,snative,mno
create table stu
(
	sno char(9) primary key,
	sname varchar(30) not null,
	ssex char(2) not null,
	snative varchar(30),
	mno int
)ENGINE=InnoDB DEFAULT CHARSET=gbk;

sc表的属性为:sno,cno,tno,participation,final,total
create table sc
(
	sno char(9),
	cno int,
	tno int,
	participation float,
	final float,
	total float,
	constraint fk_sc_stu foreign key(sno) references stu(sno),
	constraint fk_sc_course foreign key(cno) references course(cno),
	constraint fk_sc_teacher foreign key(tno) references teacher(tno),
	constraint pk_sc primary key(sno,cno,tno)
)ENGINE=InnoDB DEFAULT CHARSET=gbk;

Java类的属性和表字段保持一致:

//省略了getter、setter和重写的toString()方法
Student类,对应stu表
package com.po;

import java.util.List;

public class Student {
   
	private String sno;
	private String sname;
	private String ssex;
	private String snative;
	private int mno;
	private List<Score> scoreList;//用来存放从sc表中查询的结果。
}
//Score类,对应SC表
package com.po;
import java.util.List;
public class Score {
   
	private String sno;
	private int cno;
	
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值