ibatis多表查询-阿里云开发者社区

开发者社区> 数据库> 正文

ibatis多表查询

简介:   我们先来看看这两张表 表名:tbl_Student 字段:ID,NAME,CLASS_ID 表名:tbl_Class 字段:ID,NAME 很简单的一个逻辑,班级下边有很多学生。我们先对学生表做简单的查询。 Model public class Student {     private String id;     private Str
 
我们先来看看这两张表

表名:tbl_Student
字段:ID,NAME,CLASS_ID

表名:tbl_Class
字段:ID,NAME

很简单的一个逻辑,班级下边有很多学生。我们先对学生表做简单的查询。

Model

public class Student
{
    private String id;
    private String name;
    private Stirng birth;
    private String class_id;
    .......................
}


StudentMapper.xml

<typeAlias alias="StudentClass" type="model.Student"></typeAlias>

<sql id="select">
    <![CDATA[
        select ID,NAME,CLASS_ID
        from tbl_Student
    ]]>
</sql>

<resultMap id="StudentMap" class="StudentClass">
    <result property="id" column="ID" />
    <result property="name" column="NAME" />
    <result property="class_id" column="CLASS_ID" />
</resultMap>

<select id="selectAll" parameterClass="java.util.Map" resultMap="StudentMap">
    <include refid="select" />
</select>


但是我想加入班级名称在里面呢?这个时候Student就不够用了,我们需要用dto了。

Dto

public class StudentDto
{
     private String id;
     private String name;
     private Stirng birth;
     private String class_id;
     private String class_name;
     ......................
}


在原有的StudentMapper.xml文件中加入一下内容:

<typeAlias alias="StudentDtoClass" type="dto.StudentDto"></typeAlias>

<resultMap id="StudentDtoMap" class="StudentDtoClass">
    <result property="id" column="ID" />
    <result property="name" column="NAME" />
    <result property="class_id" column="CLASS_ID" />
    <result property="class_name" column="CLASS_NAME" />
</resultMap>

<sql id="select2">
    <![CDATA[
        select s.ID as id,s.NAME as name,s.CLASS_ID as class_id,c.name as class_name
        from tbl_Student s,tbl_Class c 
        where s.class_id = c.id
    ]]>
</sql>

<select id="selectAll2" parameterClass="java.util.Map" resultMap="StudentDtoMap">
    <include refid="select2" />
</select>

一定要注意写as后面的值,这样才能一一对应起来,否则会报错:未指定的列。



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章