• mybatis一对多


    1.一对多:两次 查询

    <?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.shangsheng.springbootservlet.user.dao.UserMapper" >
    <resultMap id="BaseResultMap" type="com.shangsheng.springbootservlet.user.entity.User" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="name" property="name" jdbcType="VARCHAR" />
    <result column="password" property="password" jdbcType="VARCHAR" />
    <result column="per_id" property="per_id" jdbcType="INTEGER"/>

    </resultMap>

    <select id="getUserList" resultMap="getList" parameterType="int">
    select id,name,password,per_id from user where id=#{id}
    </select>

    <resultMap id="getList" type="com.shangsheng.springbootservlet.user.entity.User">
    <collection property="persons" column="id" ofType="com.shangsheng.springbootservlet.user.entity.Person" select="getAll"/>
    </resultMap>

    <select id="getAll" resultMap="personResultMap">
    select person_id,sex,mark from person where person_id=#{person_id}
    </select>

    <resultMap id="personResultMap" type="com.shangsheng.springbootservlet.user.entity.Person">
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="sex" property="sex" jdbcType="VARCHAR" />
    <result column="mark" property="mark" jdbcType="BIGINT" />
    </resultMap>
    ②,一次查询:

    <sql id="Base_Column_List" >
    id, name, password
    </sql>

    <sql id="good_Column_List">
    person_id,sex,mark
    </sql>

    <resultMap id="personResult" type="com.shangsheng.springbootservlet.user.entity.User" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="name" property="name" jdbcType="VARCHAR" />
    <result column="password" property="password" jdbcType="VARCHAR" />
    <collection property="personList" ofType="com.shangsheng.springbootservlet.user.entity.Person">
    <result column="person_id" property="personId" jdbcType="INTEGER" />
    <result column="sex" property="sex" jdbcType="VARCHAR" />
    <result column="mark" property="mark" jdbcType="BIGINT" />
    </collection>
    </resultMap>

    <select id="getAll" resultMap="personResult" parameterType="java.lang.Integer" >
    select
    <include refid="Base_Column_List" />,
    <include refid="good_Column_List" />
    from user join person on person_id=id
    and id = #{id,jdbcType=INTEGER}
    </select>
  • 相关阅读:
    sqlserver sql优化案例及思路
    mysql执行计划常用说明
    MYSQL 的rownum
    innodb crash
    spring-mybatis源码追踪
    mylyn提交到JIRA的日期格式错误
    [google面试CTCI] 2-1.移除链表中重复元素
    [google面试CTCI] 2-0.链表的创建
    [google面试CTCI] 1-8.判断子字符串
    [google面试CTCI] 1-7.将矩阵中特定行、列置0
  • 原文地址:https://www.cnblogs.com/shanshen/p/9646056.html
Copyright © 2020-2023  润新知