返回顶部
首页 > 资讯 > 后端开发 > Python >mybatis 如何利用resultMap复杂类型list映射
  • 739
分享到

mybatis 如何利用resultMap复杂类型list映射

2024-04-02 19:04:59 739人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

mybatis resultMap复杂类型list映射 映射泛型为对象 xml <resultMap id="internetDataDTO" type="com.mdm.

mybatis resultMap复杂类型list映射

映射泛型为对象

xml


<resultMap id="internetDataDTO" type="com.mdm.skr.mdm_common.dto.StrategyInternetDataDTO">
    <id property="id" column="id" jdbcType="INTEGER"/>
    <result property="internetData" column="internet_data" jdbcType="INTEGER"/>
    <collection property="userList" ofType="com.mdm.skr.mdm_common.entity.SysUser">
        <id property="id" column="id" jdbcType="INTEGER"/>
        <result property="number" column="number" jdbcType="VARCHAR"/>
        <result property="pushToken" column="push_token" jdbcType="VARCHAR"/>
        <result property="wsChannelId" column="ws_channel_id" jdbcType="VARCHAR"/>
    </collection>
</resultMap> 
 
<select id="selectInternetDataDTOByInternetDataidList" resultMap="internetDataDTO">
      SELECT sidu.id, sidu.internet_data, su.id, su.number, su.push_token, su.ws_channel_id
      FROM strategy_internet_data_user sidu JOIN skr_user su on su.id = sidu.user_id
      WHERE sidu.id IN
      <foreach collection="internetDataIdList" open="(" close=")"
          separator="," item="internetDataId">
          #{internetDataId}
      </foreach>
</select>

DTO


@Data
public class StrategyInternetDataDTO { 
    private Integer id ;
    private Integer internetData ;
    private List<SysUser> userList ;
 
}

ENTITY


@Data
public class SysUser { 
    private Integer id;
    private String number;
    private String pushToken;
    private String wsChannelId ; 
}

MAPPER


List<StrategyInternetDataDTO> selectInternetDataDTOByInternetDataIdList(@Param("internetDataIdList") List<Integer> internetDataIdList);

映射泛型为包装类型

xml


<resultMap id="internetDataDTO" type="com.mdm.skr.mdm_common.dto.StrategyInternetDataDTO">
    <id property="id" column="id" jdbcType="INTEGER"/>
    <result property="internetData" column="internet_data" jdbcType="INTEGER"/>
    <collection property="userIdList" ofType="java.lang.Integer" javaType="java.util.List">
        <result column="userId"/>
    </collection>
</resultMap>  
 
<select id="selectInternetDataDTOByInternetDataIdList" resultMap="internetDataDTO">
      SELECT sidu.id, sidu.internet_data, sidu.user_id userId
      FROM strategy_internet_data_user sidu
      WHERE sidu.id IN
      <foreach collection="internetDataIdList" open="(" close=")"
          separator="," item="internetDataId">
          #{internetDataId}
      </foreach>
</select>

DTO


@Data
public class StrategyInternetDataDTO { 
    private Integer id ;
    private Integer internetData ;
    private List<Integer> userIdList ; 
}

MAPPER


List<StrategyInternetDataDTO> selectInternetDataDTOByInternetDataIdList(@Param("internetDataIdList") List<Integer> internetDataIdList);

mybatis的几种传值方式

1.单个参数传参


User selectUserInfo(Integer userId);
<select id = "selectUserInfo" parameterType = "java.lang.Inte" resultMap="BaseResultMap" >
    select
    <include refid="Base_Column_List" />
    from user
    where userId = #{userId , jdbcType=INTEGER}
</select>

2. 按照顺序传参


User selectUserInfo(Integer userId, String userName, String userPass);
<select id = "selectUserInfo" resultMap="BaseResultMap" >
    select
    <include refid="Base_Column_List" />
    from user
    where userId = #{arg0} and userName = #{arg1} and userPass = #{arg2}
</select>

3. 使用@Param注解传参


User selectUserInfo(@Param("userName")String userName, @Param("userPass")String userPass);
<select id = "selectUserInfo" resultMap="BaseResultMap" >
    select
    <include refid="Base_Column_List" />
    from user
    where userName = #{userName} and userPass = #{userPass}
</select>

4. 使用Map传参 注意传参方式:parameterType="java.util.Map"


Map<String,Object> map = new HashMap();
map.put("userName","张三");
map.put("userPass","123");
User user = userMapper.selectUserInfo(map);
User selectUserInfo(Map<String,Object> map);
<select id="selectUserInfo" parameterType="java.util.Map" resultMap="BaseResultMap" >
    select
    <include refid="Base_Column_List" />
    from user
    where userName = #{userName} and userPass = #{userPass}
</select>

5. 实体对象传参


User user = new User();
user.setUserName("张三");
user.setUserPass("123");
User user = UserMapper.selectUserInfo(user);
User selectUserInfo(User record);
<select id="selectUserInfo" parameterType="com.LiuXu.bean.User" resultMap="BaseResultMap" >
    select
    <include refid="Base_Column_List" />
    from user
    where userName = #{userName} and userPass = #{userPass}
</select>

6. List传参


List<User> list = new ArrayList<>();
list.add(user1);
list.add(user2);
List<User> userList = userMapper.selectUserInfo(list);
    
List<User> selectUserInfo(List<User> record);
<select id="selectUserInfo" resultMap="BaseResultMap" >
    select
    <include refid="Base_Column_List" />
    from user
    where userId in
    <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
        #{item}
    </foreach>
</select>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: mybatis 如何利用resultMap复杂类型list映射

本文链接: https://lsjlt.com/news/131507.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mybatis 如何利用resultMap复杂类型list映射
    mybatis resultMap复杂类型list映射 映射泛型为对象 xml <resultMap id="internetDataDTO" type="com.mdm....
    99+
    2024-04-02
  • mybatis怎么利用resultMap复杂类型list映射
    这篇文章主要介绍“mybatis怎么利用resultMap复杂类型list映射”,在日常操作中,相信很多人在mybatis怎么利用resultMap复杂类型list映射问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-20
  • MyBatis如何自定义映射resultMap
    这篇文章主要讲解了“MyBatis如何自定义映射resultMap”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MyBatis如何自定义映射resultMap”吧!1 准备工作1.1 建表t...
    99+
    2023-07-05
  • MybatisPlus如何自定义TypeHandler映射JSON类型为List
    目录自定义TypeHandler映射JSON类型为List1. 实体类2. ListTypeHandler3. ReportUserListTypeHandler4. Java 泛型...
    99+
    2024-04-02
  • Go语言中的映射类型如何使用?
    Go语言中的映射类型如何使用? 在Go语言中,映射(map)是一种内置的数据结构,用于存储键值对。映射允许通过键来快速检索值,类似于其他语言中的字典或哈希表。在本文中,我们将介绍Go语...
    99+
    2024-04-02
  • Java中如何使用复杂数据类型
    本篇文章为大家展示了Java中如何使用复杂数据类型,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java复杂数据类型用法 (转)[@more@]同简单数据类型的定义一样,Java虚拟机(JVM)还定...
    99+
    2023-06-03
  • mybatis 如何返回list<String>类型数据
    mybatis返回list<String>类型数据 studends表里一条teacher_id 数据对应多条 student_id数据,所以通过teacher_id 查...
    99+
    2024-04-02
  • 使用MyBatis-Generator如何自动生成映射文件
    目录MyBatis-Generator自动生成映射文件1、使用cmd命令方式生成2、使用maven方式生成3、如果开发工具为eclipse自动生成MyBatis映射文件工具问题MyB...
    99+
    2024-04-02
  • Java如何使用反射获取list泛型
    这篇文章主要介绍“Java如何使用反射获取list泛型”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java如何使用反射获取list泛型”文章能帮助大家解决问题。通过属性来获取泛型的类型Field[...
    99+
    2023-07-05
  • Java如何利用反射对list对象做过滤
    小编给大家分享一下Java如何利用反射对list对象做过滤,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!反射对效率有影响 慎用!!!1.对象结构public class BusinessDep...
    99+
    2023-06-29
  • Mybatis如何使用@Mapper和@MapperScan注解实现映射关系
    目录使用@Mapper和@MapperScan注解实现映射关系Mybatis-@MapperScan和mybatis:scan分析<mybatis:scan>Mapper...
    99+
    2024-04-02
  • Python中如何利用PyVista进行mesh的色彩映射
    这篇文章给大家分享的是有关Python中如何利用PyVista进行mesh的色彩映射的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。PyVista简介PyVista是什么PyVista 是一个:VTK for hu...
    99+
    2023-06-14
  • Go API教程:如何处理复杂的数据类型?
    Go是一种非常流行的编程语言,尤其在Web开发领域中得到了广泛的应用。在使用Go编写API时,处理复杂的数据类型是一个常见的问题。在本文中,我们将介绍如何使用Go处理复杂的数据类型。 结构体 结构体是一种用户自定义的数据类型,它允许我们...
    99+
    2023-06-03
    api 数据类型 教程
  • 如何使用运行时类型反射来转换类型?
    问题内容 我正在尝试使用泛型构建一个函数,它将接口切片转换为 t 类型的切片。 我想出了以下内容: func convertInterfaceArray[T any](input []...
    99+
    2024-02-06
  • 如何利用Brainstorm框架解决复杂问题
    使用Brainstorm框架解决复杂问题的步骤如下: 定义问题:明确问题的核心,并确保所有团队成员对问题的理解一致。 收集信...
    99+
    2024-03-08
    Brainstorm
  • Mybatis如何通过数据库表自动生成实体类和xml映射文件
    本篇内容主要讲解“Mybatis如何通过数据库表自动生成实体类和xml映射文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mybatis如何通过数据库表自动生成实体类和xml映射文件”吧!环境...
    99+
    2023-06-20
  • mybatis中如何用tinyint保存Boolean类型
    目录mybatis用tinyint保存Boolean类型一、boolean类型二、我们的实体类三、页面select标签mybatis更新时如果数据类型为boolean型遇到的问题my...
    99+
    2024-04-02
  • 如何使用npm和ASP处理复杂的数据类型和数组?
    随着Web应用程序变得越来越复杂,处理数据的需求也越来越高。在这种情况下,使用npm和ASP来处理复杂的数据类型和数组是非常必要的。本文将为您介绍如何使用npm和ASP处理复杂的数据类型和数组。 一、什么是npm? npm是一个包管理器,它...
    99+
    2023-08-15
    npm 数组 数据类型
  • 如何使用反射提取类型参数
    问题内容 上下文:我正在编写一个通用自动映射器,它采用两种类型的结构,检查所述结构的每个字段是否有给定的标签,然后将值从源结构复制到目标结构,假设它们具有匹配的标签和类型。每当结构字段...
    99+
    2024-02-12
    overflow
  • 如何使用反射获取私有类型?
    编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天编程网就整理分享《如何使用反射获取私有类型?》,文...
    99+
    2024-04-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作