package com.kuang.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
public class Student {
private int id;
private String name;
//学生需要关联一个老师,因此不能直接写tid这个字段
private Teacher teacher;
}
Teacher
package com.kuang.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
public class Teacher {
private int id;
private String name;
}
6.创建接口——StudentMapper
package com.kuang.dao;
import com.kuang.pojo.Student;
import java.util.List;
public interface StudentMapper {
//查询所有的学生信息,以及对应的老师信息
public List getStudent();
public List getStudent2();
}
7.创建接口配置类——StudentMapper.xml
select * from student
select * from teacher where id = #{tid}
select s.id sid,s.name sname,t.name tname from student s,teacher t where s.tid=t.id
8.创建测试类——StudentMapperTest
package com.kuang.dao;
import com.kuang.pojo.Student;
import com.kuang.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;
import org.junit.Test;
import java.util.List;
public class StudentMapperTest {
static Logger logger = Logger.getLogger(StudentMapperTest.class);
@Test
public void getStudent(){
SqlSession session = MybatisUtils.getSqlSession();
StudentMapper mapper = session.getMapper(StudentMapper.class);
List student = mapper.getStudent();
for (Student s:student) {
System.out.println(s);
}
session.close();
}
@Test
public void getStudent2(){
SqlSession session = MybatisUtils.getSqlSession();
StudentMapper mapper = session.getMapper(StudentMapper.class);
List student = mapper.getStudent2();
for (Student s:student) {
System.out.println(s);
}
session.close();
}
}
9.各文件位置
一对多处理
比如:一个老师拥有多个学生 对于老师而言,就是一对多的关系
SQL:
select s.id sid,s.name sname, t.name tname,t.id tid from student s,teacher t
where s.tid=t.id and t.id=#{tid}
按照查询嵌套处理
select * from teacher where id=#{tid}
select * from student where tid=#{tid}
按照结果嵌套处理
select s.id sid,s.name sname, t.name tname,t.id tid from student s,teacher t
where s.tid=t.id and t.id=#{tid}
package com.kuang.pojo;
import lombok.Data;
@Data
public class Student {
private int id;
private String name;
private int tid;
}
Teacher
package com.kuang.pojo;
import lombok.Data;
import java.util.List;
@Data
public class Teacher {
private int id;
private String name;
//一个老师拥有多个学生
private List students;
}
6.创建接口——TeacherMapper
package com.kuang.dao;
import com.kuang.pojo.Teacher;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface TeacherMapper {
//获取老师
// List getTeacher();
//获取指定老师下所有学生及老师的信息
Teacher getTeacher(@Param("tid") int id);
Teacher getTeacher2(@Param("tid") int id);
}
7.创建接口配置类——TeacherMapper.xml
select s.id sid,s.name sname, t.name tname,t.id tida from student s,teacher t
where s.tid=t.id and t.id=#{tid}
select * from teacher where id=#{tid}
select * from student where tid=#{tid}