首页 > 其他分享 >mybatis映射集合,嵌套查询

mybatis映射集合,嵌套查询

时间:2024-12-23 17:55:34浏览次数:10  
标签:映射 userId 嵌套 interface user mybatis WHERE id SELECT

public interface PhoneMapper {
    List<String> queryPhoneNameByIds(String userId);
}
<select id="queryPhoneNameByIds" resultType="String">
    SELECT p.phone_name
    FROM phone p
    WHERE p.user_id = #{userId}
</select>

public interface AddressMapper {
    List<String> queryAddressByUserId(String userId);
}
<select id="queryAddressByUserId" resultType="String">
    SELECT a.address
    FROM address a
    WHERE a.user_id = #{userId}
</select>

<resultMap type="com.example.model.User" id="userResultMap">
    <!-- 基本字段映射 -->
    <result property="id" column="id" jdbcType="VARCHAR"/>
    <result property="userName" column="user_name" jdbcType="VARCHAR"/>
    <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
    <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
    <!-- 关联集合字段 -->
    <collection property="phoneNameList" 
                select="com.example.mapper.PhoneMapper.queryPhoneNameByIds" 
                column="id"/>

    <collection property="addressList" 
                select="com.example.mapper.AddressMapper.queryAddressByUserId" 
                column="id"/>
</resultMap>

<select id="queryUserInfo" resultMap="userResultMap">
    SELECT 
        u.id, 
        u.user_name, 
        u.create_time, 
        u.update_time
    FROM user u
    WHERE u.id = #{userId}
</select>
 

标签:映射,userId,嵌套,interface,user,mybatis,WHERE,id,SELECT
From: https://blog.csdn.net/Penffie0907/article/details/144673967

相关文章

  • Java项目实战之基于 Spring Boot、MyBatis 和 Vue.js 的智能停车场系统设计与技术选型
    1.系统概述本智能停车场系统旨在为停车场提供高效、便捷的管理解决方案,涵盖车辆进出管理、车位预订、停车费用计算、用户信息管理等功能,同时提供管理员操作界面和用户移动端应用,提升停车场运营效率和用户体验。1.1目标实现停车场自动化管理,提高车位利用率,减少人工成本,为用户提......
  • Mybatis
    Mybatis入门前言Java程序操作数据库,现在主流的方式是:Mybatis。什么是MyBatis?MyBatis是一款优秀的持久层框架,用于简化JDBC的开发。持久层:指的是就是数据访问层(dao),是用来操作数据库的。框架:是一个半成品软件,是一套可重用的、通用的、软件基础代码模型。在框架的基......
  • 由 Mybatis 源码畅谈软件设计(一):序
    作者:京东保险王奕龙从接触软件开发以来,一直对写出优雅的代码抱有执念,工作半年时,偶然接触到《代码整洁之道》,爱不释手,一口气读完,并在很长的时间内践行其中的观点,但是在这践行期间缺少思考和复盘,更多的是一味地信奉和遵守其中的原则,写了不少当时自认为不错而现在回过头看可读性不......
  • 由 Mybatis 源码畅谈软件设计(二):MappedStatement 和 SqlSource
    作者:京东保险王奕龙本节我们来介绍org.apache.ibatis.mapping.MappedStatement(映射SQL语句声明的类),它是MyBatis框架中的一个核心类,也是向后不断学习Mybatis源码的基础。在这部分源码中,最值得关注的设计原则是“信息隐藏”,它是在《软件设计哲学》中提到的一个观点,简单来说就......
  • Java 项目实战:基于 Spring Boot、MySQL、MyBatis、Redis、Nginx 与 Vue 的电力企业业
    1.项目概述1.1项目背景在电力企业中,员工需要不断提升专业知识和技能,以确保电力系统的安全、稳定运行。传统的培训和考核方式存在效率低、资源浪费等问题。为了满足电力企业对员工培训和考核的需求,提高培训效果和考核效率,降低成本,开发一个功能完善、易于使用的电力企业业务考试......
  • JavaWeb案例整体分析---》差旅费报销管理信息系统->>数据库操作和Mybatis配置
    数据库操作CREATETABLEter_businessapply(idVARCHAR(8)PRIMARYKEY,nameVARCHAR(50)NOTNULL, positionVARCHAR(50)NOTNULL,departmentVARCHAR(50)NOTNULL,destinationVARCHAR(100)NOTNULL,departure_datevarchar(30)NOTNULL,......
  • MFC/C++学习系列之简单记录8——消息映射
    MFC/C++学习系列之简单记录8——消息映射前言消息映射机制DoDataExchange函数BEGIN_MESSAGE_MAP和END_MESSAGE_MAP宏与WPF对比总结前言每天学习一点MFC的小知识!消息映射机制说起来很高大上,其实就是前端界面控件和后台代码命名的绑定。当前端控件执行某些操......
  • Spring集成MyBatis
    把mybatis和spring框架集成在一起,像一个框架一样使用。用的技术是:IOC为什么ioc能把spring和mybatis集成在一起?是因为ioc能创建对象,可以把mybatis创建的对象交给spring统一创建,开发人员从spring中获取对象。开发人员不用同时面对两个或多个框架了,就面对一个spring就行了。myb......
  • 在MyBatis中,`#{param}`和`${param}`是用于传递参数的两种不同方式,它们的主要区别在于
    1.**`#{param}`(预处理参数)**:  -`#{param}`是MyBatis中的参数占位符,它用于预处理(PreparedStatement)语句中的参数。  -当使用`#{param}`时,MyBatis会将参数值安全地传递给SQL语句,防止SQL注入攻击。  -`#{param}`会自动处理参数的转义,确保传入的值被正确处理,例如......
  • Springmvc进一步学习(springmvc-mybatis):跳转不经过视图解析器、controller如何保存数
    上一章的springmvc回顾内容:1.springmvc框架:主要作用:处理客户的请求,并处理数据,以及响应客户。2.springmvc搭建流程:  [1]引入springmvc依赖。spring-webmvc  [2]编写springmvc配置文件。   1.包扫描<context:component-scanbasepackage=""/>   ......