》》》》》》》》》
数据库
use Student;
CREATE TABLE grade (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
gradeName VARCHAR(20)
)
use student;
CREATE TABLE student (
sno INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
sname VARCHAR(12) NOT NULL,
sage INT NOT NULL,
addressID INT,
FOREIGN KEY (addressID)
REFERENCES address (id),
gradeID INT,
FOREIGN KEY (gradeID)
REFERENCES grade (id)
)
》》》》》》》》》
Model
import java.util.List;
public class Grade {
private int id;
private String gradeName;
private List<Student> students;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getGradeName() {
return gradeName;
}
public void setGradeName(String gradeName) {
this.gradeName = gradeName;
}
public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this.students = students;
}
@Override
public String toString() {
return "Grade [id=" + id + ", gradeName=" + gradeName + ", students=" + students + "]";
}
}
》》》》》》》》》
import com.imis.model.Grade;
public interface GradeMapper {
public Grade findByID(int id);
}
》》》》》》》》》
映射配置
StudentMapper.xml
<select id="findByGradeId" resultMap="StudentResult" parameterType="Integer">
select * from student where gradeID=#{gradeID}
</select>
GradeMapper.java
<?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="com.imis.mappers.GradeMapper">
<resultMap type="Grade" id="GradeResult">
<result property="id" column="id"/>
<result property="gradeName" column="gradeName"/>
<collection property="students" column="id" select="com.imis.mappers.StudentMapper.findByGradeId"></collection>
</resultMap>
<select id="findByID" parameterType="Integer" resultMap="GradeResult">
select * from grade where id=#{id}
</select>
</mapper>
》》》》》》》》》》》
StudentMapper.java
public Student findByGradeId(int gradeID);
》》》》》》》》》》》
测试
import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.imis.mappers.GradeMapper;
import com.imis.model.Grade;
import com.imis.util.SqlSessionFactoryUtil;
public class GradeTest {
private static Logger logger=Logger.getLogger(GradeTest.class);
private SqlSession sqlSession=null;
private GradeMapper gradeMapper=null;
@Before
public void setUp() throws Exception {
sqlSession=SqlSessionFactoryUtil.openSession();
gradeMapper=sqlSession.getMapper(GradeMapper.class);
}
@After
public void tearDown() throws Exception {
sqlSession.close();
}
@Test
public void testFindGradeWithStudent() {
logger.info("查询年级(带学生)");
System.out.println("1");
Grade grade=gradeMapper.findByID(2);
System.out.println("2");
System.out.println(grade);
}
}
》》》》》
查询学生带年级,同address