1. 程式人生 > 其它 >Mybatis學習_複雜查詢環境搭建

Mybatis學習_複雜查詢環境搭建

測試環境搭建

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.測試