测试环境搭建
1.创建数据表,并插入数据
#创建老师表
create table tb_teacher(
tea_id int(12) primary key auto_increment,
tea_name varchar(36)
);
insert into tb_teacher values (null,'秦老师');
insert into tb_teacher values (null,'启老师');
#创建学生表
create table tb_student(
stu_id int(12) primary key auto_increment,
stu_name varchar(36),
tea_id int(12),
foreign key (tea_id) references tb_teacher(tea_id)
);
insert into tb_student values (null,'赵云',1);
insert into tb_student values (null,'张飞',1);
insert into tb_student values (null,'貂蝉',1);
insert into tb_student values (null,'吕布',1);
insert into tb_student values (null,'刘邦',2);
select * from tb_teacher;
select * from tb_student;
2.创建tb_teacher和tb_student对应的实体类
public class Teacher implements Serializable {
private Integer tea_id;
private String tea_name;
public Teacher() {
}
public Teacher(Integer tea_id, String tea_name) {
this.tea_id = tea_id;
this.tea_name = tea_name;
}
public Integer getTea_id() {
return tea_id;
}
public void setTea_id(Integer tea_id) {
this.tea_id = tea_id;
}
public String getTea_name() {
return tea_name;
}
public void setTea_name(String tea_name) {
this.tea_name = tea_name;
}
@Override
public String toString() {
return "Teacher[" +
"tea_id=" + tea_id +
", tea_name='" + tea_name + '\'' +
']';
}
}
public class Student implements Serializable {
private Integer stu_id;
private String stu_name;
private Teacher teacher; //学生需要关联一个老师
public Student() {
}
public Student(Integer stu_id, String stu_name, Teacher teacher) {
this.stu_id = stu_id;
this.stu_name = stu_name;
this.teacher = teacher;
}
public Integer getStu_id() {
return stu_id;
}
public void setStu_id(Integer stu_id) {
this.stu_id = stu_id;
}
public String getStu_name() {
return stu_name;
}
public void setStu_name(String stu_name) {
this.stu_name = stu_name;
}
public Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
@Override
public String toString() {
return "Student[" +
"stu_id=" + stu_id +
", stu_name='" + stu_name + '\'' +
", teacher=" + teacher +
']';
}
}
3.在org/java/dao下创建StudentMapper接口和TeacherMapper接口
public interface TeacherMapper {
/**
* 查询所有老师信息
*/
public List<Teacher> getTeacherList();
}
public interface StudentMapper {
}
4.在resources下创建org/java/dao目录,创建的时候一步一步创建(右键resources-New-Directory-org ...)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--TeacherMapper.xml-->
<mapper namespace="org.java.dao.TeacherMapper">
<!--查询所有老师信息-->
<select id="getTeacherList" resultType="teacher">
select * from tb_teacher;
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--StudentMapper.xml-->
<mapper namespace="org.java.dao.StudentMapper">
</mapper>
5.去resources/mybatis-config.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>
<!--引入外部配置文件-->
<properties resource="db.properties"/>
<!--可以给实体类(User.class)起别名-->
<typeAliases>
<package name="org.java.pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driverClassName}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!--mappers 元素则包含了一组映射器(mapper),这些映射器的 XML 映射文件包含了 SQL 代码和映射定义信息。-->
<mappers>
<mapper resource="org/java/dao/TeacherMapper.xml"/>
<mapper resource="org/java/dao/StudentMapper.xml"/>
</mappers>
</configuration>
6.测试
多对一的处理
1.在StudentMapper.class中编写方法
public interface StudentMapper {
// 查询所有学生信息以及对应老师信息
public List<Student> getStudent();
public List<Student> getStudent2();
}