Mybatis學習_複雜查詢環境搭建
阿新 • • 發佈:2022-03-22
測試環境搭建
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>