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.测试

多对一的处理

1.在StudentMapper.class中编写方法

public interface StudentMapper {
    // 查询所有学生信息以及对应老师信息
    public List<Student> getStudent();

    public List<Student> getStudent2();
}
posted @ 2022-03-22 16:14  RNG_Joker  阅读(36)  评论(0)    收藏  举报