美文网首页
mybatis-一对一,一对多查询

mybatis-一对一,一对多查询

作者: 李霖神谷 | 来源:发表于2019-12-04 10:37 被阅读0次

1.一对一查询:
根据角色来查询所对应的people,这里是通过age来关联两个表的。
需求:根据role 的age_id来查询对应的people
实现:因为它们关联的字段是age,在xml文件做一对一映射使用association映射age所对应的实体类即可。
role pojo:

package com.shuai.pojo;

import lombok.Data;

@Data
public class Role {
    private String workNmame;
    private People people;
}

mapper xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.shuai.mapper.PeopleMapper">
    <resultMap id="RoleMapper" type="com.shuai.pojo.Role">
        <result property="workNmame" column="work_name"></result>
        <association property="people" javaType="com.shuai.pojo.People">
            <result property="name" column="name"></result>
            <result property="age" column="age"></result>
        </association>
    </resultMap>
    <select id="findById" resultMap="RoleMapper" parameterType="int" >
    select * from people,role where people.age=role.age_id and age_id=#{id};
    </select>
</mapper>

2.一对多查询:一对多基于一对一的基础上的,只是对于age的映射改成关于实体类的集合,association改为collection做相关映射。
role

package com.shuai.pojo;

import lombok.Data;

import java.util.List;

@Data
public class Role {
    private String workNmame;
    private List<People> people;
}

mapper xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.shuai.mapper.PeopleMapper">
    <resultMap id="RoleMapper" type="com.shuai.pojo.Role">
        <result property="workNmame" column="work_name"></result>
        <collection property="people" ofType="com.shuai.pojo.People">
            <result property="name" column="name"></result>
            <result property="age" column="age"></result>
        </collection>
    </resultMap>
    <select id="findById" resultMap="RoleMapper" parameterType="int" >
    select * from people,role where people.age=role.age_id and age_id=#{id};
    </select>
</mapper>

相关文章

  • mybatis-一对一,一对多查询

    1.一对一查询:根据角色来查询所对应的people,这里是通过age来关联两个表的。需求:根据role 的age_...

  • Django-关系映射

    关系映射 一对一映射 语法 查询 一对多映射 语法 查询 多对多映射 语法 查询 自定义查询对象

  • 拉钩笔记_模块一

    1.注解开发开发实现复杂映射: 一对一查询一对一 一对多查询一对多 代码实现如上,通过@Results、@Resu...

  • Django模型层之多表操作(三)

    基于对象的跨表查询 一对多查询(publish与book) 一对一查询(Author 与 AuthorDetail...

  • 2020-03-21

    1.Mybatis多表查询 1.1 一对一查询 1.1.1 一对一查询的模型 用户表和订单表的关系为,一个用户有多...

  • 关系的种类对于性能的影响

    一对多单向只有一个查询: 一对一双向同样只有一个查询: 多对一(维表为多端)双向,4个查询: 多对多双向,5个查询...

  • Mybatis的多表操作

    1.Mybatis多表查询 1.1 一对一查询 1.1.1 一对一查询的模型MapperScannerConfig...

  • 黑马SQL笔记 - 基础篇 - 4. 多表查询

    多表关系 一对多 多对多 一对一 连接查询 自连接:当前表与自身的连接查询,自连接必须使用表别名内连接:相当于查询...

  • Django中关系查询

    1 Django中关系查询 一对一 一对多 多对多 1.1 一对多 1.1.1 app下创建models类 1.1...

  • MySQL---数据库从入门走向大神系列(四)-子查询、表与表之

    本篇博客讲解(子查询)非相关子查询/相关子查询,一对一,一对多,多对一,多对的的关系! 准备: 首先我们创建一列s...

网友评论

      本文标题:mybatis-一对一,一对多查询

      本文链接:https://www.haomeiwen.com/subject/xipkgctx.html