mapper.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="com.zx.mybatis.mapper.StudentMapper">
<select id="selectAllBanJi" resultMap="bs">
select b.* from bj b
</select>
<select id="selectStuByClassno" resultMap="myStudent">
select s.* from student s where s.classno = #{abc}
</select>
<resultMap type="BanJi" id="bs">
<id column="id" property="classNo"/>
<result column="name" property="className"/>
<collection property="stus" ofType="Student" select="selectStuByClassno" column="id">
</collection>
</resultMap>
<select id="selectAllStudent1" resultMap="ddy2">
select s.id,s.user_name,s.age,s.score,s.classno from student s
</select>
<select id="selectBjByXs" resultMap="myBanJi">
select b.* from bj b where b.id = #{abc}
</select>
<resultMap type="Student1" id="ddy2">
<id column="id" property="id"/>
<result column="user_name" property="name"/>
<result column="age" property="age"/>
<result column="score" property="score"/>
<association property="bj" javaType="BanJi1" select="selectBjByXs" column="classno"></association>
</resultMap>
<resultMap type="BanJi1" id="myBanJi">
<id column="id" property="classNo"/>
<result column="name" property="className"/>
</resultMap>
</mapper>
dao接口代码:
package com.zx.mybatis.mapper;
import java.util.List;
import java.util.Map;
import com.zx.mybatis.entity.BanJi;
import com.zx.mybatis.entity.Student;
import com.zx.mybatis.entity.Student1;
public interface StudentMapper {
public List<BanJi> selectAllBanJi();
public List<Student1> selectAllStudent1();
}
java测试代码:
package com.zx.mybatis.test;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import com.zx.mybatis.entity.BanJi;
import com.zx.mybatis.entity.Student1;
import com.zx.mybatis.mapper.StudentMapper;
import com.zx.mybatis.util.MybatisUtil;
public class Test2 {
private static SqlSession sqlSession;
static {
sqlSession = MybatisUtil.getSqlSession();
}
@Test
public void Test1() {
StudentMapper sd = sqlSession.getMapper(StudentMapper.class);
List<BanJi> bjs = sd.selectAllBanJi();
for(BanJi bj : bjs) {
System.out.println(bj);
}
sqlSession.close();
}
@Test
public void Test2() {
StudentMapper sd = sqlSession.getMapper(StudentMapper.class);
List<Student1> stu1s = sd.selectAllStudent1();
for(Student1 stu1 : stu1s) {
System.out.println(stu1);
}
sqlSession.close();
}
}
java工具类代码:
package com.zx.mybatis.util;
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MybatisUtil {
private static String resource = "mybatis.xml";
private static SqlSessionFactory sqlSessionFactory = null;
public static SqlSession getSqlSession() {
if(sqlSessionFactory==null) {
try {
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
return sqlSessionFactory.openSession();
}
}
java实体类代码:
package com.zx.mybatis.entity;
public class BanJi1 {
private int classNo;
private String className;
public BanJi1() {
}
public BanJi1(int classNo, String className) {
super();
this.classNo = classNo;
this.className = className;
}
public int getClassNo() {
return classNo;
}
public void setClassNo(int classNo) {
this.classNo = classNo;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
@Override
public String toString() {
return "BanJi1 [classNo=" + classNo + ", className=" + className + "]";
}
}
package com.zx.mybatis.entity;
public class Student1 {
private int id;
private String name;
private int age;
private double score;
private BanJi1 bj;
public Student1() {
super();
}
public Student1(int id, String name, int age, double score, BanJi1 bj) {
super();
this.id = id;
this.name = name;
this.age = age;
this.score = score;
this.bj = bj;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public BanJi1 getBj() {
return bj;
}
public void setBj(BanJi1 bj) {
this.bj = bj;
}
@Override
public String toString() {
return "Student1 [id=" + id + ", name=" + name + ", age=" + age + ", score=" + score + ", bj=" + bj + "]";
}
}
package com.zx.mybatis.entity;
public class Student {
private int id;
private String name;
private int age;
private double score;
public Student() {
super();
}
public Student(int id, String name, int age, double score) {
super();
this.id = id;
this.name = name;
this.age = age;
this.score = score;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + ", score=" + score + "]";
};
}
package com.zx.mybatis.entity;
import java.util.List;
public class BanJi {
private int classNo;
private String className;
private List<Student> stus;
public BanJi() {
}
public BanJi(int classNo, String className, List<Student> stus) {
super();
this.classNo = classNo;
this.className = className;
this.stus = stus;
}
public int getClassNo() {
return classNo;
}
public void setClassNo(int classNo) {
this.classNo = classNo;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public List<Student> getStus() {
return stus;
}
public void setStus(List<Student> stus) {
this.stus = stus;
}
@Override
public String toString() {
return "BanJi [classNo=" + classNo + ", className=" + className + ", stus=" + stus + "]";
}
}