核心代码
StudentDao.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="dao.StudentDao">
<select id="searchAll" resultMap="search2All">
select stu.*,bj.name bjName from student stu left join banji bj on bj_id=bj.id;
</select>
<resultMap type="entity.Student" id="search2All">
<id column="id" property="id"></id>
<result column="name" property="name" />
<result column="gender" property="gender" />
<result column="age" property="age" />
<association property="bj" javaType="entity.BanJi">
<id column="bj_id" property="id"></id>
<result column="bjName" property="name" />
</association>
</resultMap>
<select id="searchAll2" resultType="entity.Student">
select stu.*,bj.id 'bj.id',bj.name 'bj.name' from student stu left join banji bj on bj_id=bj.id;
</select>
</mapper>
StudentDao.java【接口】
package dao;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import entity.Student;
public interface StudentDao {
public List<Student> searchAll();
public List<Student> searchAll2();
}
测试文件【Test测试文件】
package test;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import dao.StudentDao;
import entity.BanJi;
import entity.Student;
public class Test3 {
public static void main(String[] args) {
SqlSession sqlSession=MybatisSqlSession.getSqlSession();
StudentDao stuDao=sqlSession.getMapper(StudentDao.class);
List<Student> list=stuDao.searchAll();
for(int i=0;i<list.size();i++) {
if(list.get(i).getBj()==null) {System.out.println("1233333");}
System.out.println(list.get(i).getName()+"\t"+list.get(i).getBj().getName()+"\t"+list.get(i).getBj().getId());
}
System.out.println("1----------------------------");
List<Student> list2=stuDao.searchAll2();
for(int i=0;i<list2.size();i++) {
if(list2.get(i).getBj()==null) {
System.out.println(list2.get(i).getName()+"\t"+list2.get(i).getBj().getId());
}else {
System.out.println(list2.get(i).getName()+"\t"+list2.get(i).getBj().getName()+"\t"+list2.get(i).getBj().getId());
}
}
System.out.println("2----------------------------");
}
}
实体类【注意此处由一个变动】
package entity;
import java.io.Serializable;
public class Student implements Serializable {
private static final long serialVersionUID = 42L;
private int id;
private String name;
private String gender;
private int age;
private BanJi bj=new BanJi();
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 String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public BanJi getBj() {
return bj;
}
public void setBj(BanJi bj) {
this.bj = bj;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", gender=" + gender + ", age=" + age + ", bj=" + bj + "]";
}
}
mybatis.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost/school?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="dao/StudentDao.xml" />
</mappers>
</configuration>