package pojo;
public class Stu {
private Integer id;
private String name;
private Clazz clazz;
public Stu() {
}
public Stu(Integer id, String name, Clazz clazz) {
this.id = id;
this.name = name;
this.clazz = clazz;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Clazz getClazz() {
return clazz;
}
public void setClazz(Clazz clazz) {
this.clazz = clazz;
}
@Override
public String toString() {
return "Stu{" +
"id=" + id +
", name='" + name + '\'' +
", clazz=" + clazz +
'}';
}
}
package pojo;
public class Clazz {
private String cid;
private String cname;
public String getCid() {
return cid;
}
public void setCid(String cid) {
this.cid = cid;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
@Override
public String toString() {
return "Clazz{" +
"cid='" + cid + '\'' +
", cname='" + cname + '\'' +
'}';
}
}
mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Mapper.StuMapper">
<resultMap id="Stuparn" type="Stu">
<result property="id" column="id">result>
<result property="name" column="name">result>
<result property="clazz.cid" column="cid">result>
<result property="clazz.cname" column="cname">result>
resultMap>
<select id="selectAll" resultMap="Stuparn">
select
s.id,s.name,c.cid,c.cname
from
t_stu s left join t_calss c on s.cid = c.cid
select>
mapper>
import Mapper.StuMapper;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import pojo.Stu;
import unitl.*;
import java.util.List;
public class TestStuMapper {
@Test
public void testSele(){
SqlSession sqlSession = mybatisunti.openSqlSession();
StuMapper mapper = sqlSession.getMapper(StuMapper.class);
List stus = mapper.selectAll();
stus.forEach(a-> System.out.println(a));
}
}
mybatis框架应该是使用无参构造方法来实例化对象的。
Java中,如果没有在类中添加任何构造方法,编译器会默认添加一个无参构造方法;如果手动在类中添加了带参的构造方法,那么编译器不会添加无参构造方法,此时需要手动添加无参构造方法。