//student 类相关信息
public class Student {
private Integer sid;
private String sname;
//···省略get,set,tostring方法
}
public class Class {
private Integer cid;
private String cname;
//studentList方法即一个班级包含的所有学生信息,一对多的体现
private List studentList;
//···省略get,set,tostring方法
}
ClassMapper 接口及其xml文件
根据班级id查询相关班级信息
public interface ClassMapper {
Class getClass(int id);
Class getClass1(int id);
}
select c.*,s.sname,s.sid from class c left join student s on c.cid=s.cid where c.cid=#{cid}
测试及结果
public class myTest {
SqlSession sqlSession;
ClassMapper classMapper;
@Before
public void openSqlSession() throws IOException {
//1.读取核心配置文件
InputStream in = Resources.getResourceAsStream("mybatisConfig.xml");
//2.创建工厂对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//3.取出sqlSession
sqlSession = factory.openSession(true);//自动提交事务
//4.取出动态代理的对象,完成接口中方法的调用,实则是调用xml文件中相的标签的功能
classMapper = sqlSession.getMapper(ClassMapper.class);
}
@After
public void closeSqlSession(){
sqlSession.close();
}
@Test
public void testOneTOMore(){
Class aClass = classMapper.getClass(1);
System.out.println(aClass);
}
@Test
public void testOneTOMore1(){
Class aClass = classMapper.getClass1(1);
System.out.println(aClass);
}
}
<>
==> Preparing: select c.*,s.sname,s.sid from class c left join student s on c.cid=s.cid where c.cid=?
==> Parameters: 1(Integer)
<== Columns: cid, cname, sname, sid
<== Row: 1, 飞机班, 张三, 1
<== Row: 1, 飞机班, 李四, 2
<== Total: 2
Class{cid=1, cname='飞机班', studentList=[Student{sid=1, sname='张三'}, Student{sid=2, sname='李四'}]}
//student 类相关信息
public class Student {
private Integer sid;
private String sname;
//多对一的体现
private Class classroom;
//···省略get,set,tostring方法
}
StudentMapper接口及其xml文件
public interface StudentMapper {
Student getStudent(Integer id);
}
select s.* ,c.* from student s left join class c on s.cid=c.cid where s.sid=#{id}
select *from student where sid=#{id}
select *from class where cid=#{cid}
测试及结果
==> Preparing: select s.* ,c.* from student s left join class c on s.cid=c.cid where s.sid=?
==> Parameters: 1(Integer)
<== Columns: sid, sname, cid, cid, cname
<== Row: 1, 张三, 1, 1, 飞机班
<== Total: 1
Student{sid=1, sname='张三', classroom=Class{cid=1, cname='飞机班'}}