在测试用例中无法通过list对象获取第二张表的单个信息
测试用例:
@Test
public void testSelect() throws Exception{
SqlSession sqlSession=null;
List<Goods> list= null;
try {
sqlSession=MybatisUtils.openSession();
list = sqlSession.selectList("goods.selectOneToMany");
for(Goods goodss:list){
System.out.println(goodss.getName()+":"+goodss.getList());
}
} catch (Exception e) {
throw e;
} finally {
MybatisUtils.closeSession(sqlSession);
}
}:
goods实体类(第一张表):
package com.batis.entity;
import java.util.List;
public class Goods {
private Integer id;
private Integer regNo;
private String name;
private String sex;
private Integer age;
private Integer grade;
private String major;
private List<GoodsManger> list;
public List<GoodsManger> getList() {
return list;
}
public void setList(List<GoodsManger> list) {
this.list = list;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getRegNo() {
return regNo;
}
public void setRegNo(Integer regNo) {
this.regNo = regNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Integer getGrade() {
return grade;
}
public void setGrade(Integer grade) {
this.grade = grade;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
@Override
public String toString() {
return "Goods{" +
"id=" + id +
", regNo=" + regNo +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
", grade=" + grade +
", major='" + major + '\'' +
'}';
}
}
goods.xml:
<?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">
<mapper namespace="goods">
<select id="selectAll" resultType="com.batis.entity.Goods">
select * from student
</select>
<select id="selectParameter" parameterType="Integer" resultType="com.batis.entity.Goods">
select * from student where id=#{id}
</select>
<select id="selectScreen" parameterType="java.util.Map" resultType="com.batis.entity.Goods">
select * from student where age > #{age} and sex =#{sex}
</select>
<resultMap id="goodsM" type="com.batis.entity.Goods">
<id column="reg_no" property="regNo"></id>
<collection property="list" select="goodsManger.selectAll" column="reg_no"/>
</resultMap>
<select id="selectOneToMany" resultMap="goodsM">
select * from student limit 0,1
</select>
</mapper>
goodsmanger实体类(第二张表):
package com.batis.entity;
public class GoodsManger {
private Integer regNo;
private String phone;
private String address;
public Integer getRegNo() {
return regNo;
}
public void setRegNo(Integer regNo) {
this.regNo = regNo;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "GoodsManger{" +
"regNo=" + regNo +
", phone=" + phone +
", address='" + address + '\'' +
'}';
}
}
goodsmanger.xml:
<?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">
<mapper namespace="goodsManger">
<select id="selectAll" parameterType="Integer" resultType="com.batis.entity.GoodsManger">
select * from student_manger where reg_no=#{regNo}
</select>
</mapper>
在mybatis-config.xml中的参数与视频讲解类似,其中也添加了两张表的mapper
24
收起
正在回答
2回答
同学你好,经测试上述贴出代码是可以获取数据的,这里同学描述的“获取第二张表的单个信息”是什么意思呢?建议同学描述清楚~
若同学最新贴出的截图是已经解决的效果,同学可忽略老师的回复哟~
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星