码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • mybatis中resultMap与resultType的区别


    mybatis中resultMap与resultType以及parameterType和parameterMap的区别

    • 1.mybatis中resultMap与resultType的区别
      • (1)实体类的名字和数据库相同时,可以直接设置resultType参数为pojo类
      • (2)若不同,需要设置resultMap将查询结果集中的列一一映射到bean对象的各个属性
    • 2.parameterType和parameterMap的区别
      • (1)parameterType的使用
      • (2)parameterMap的使用
      • (3)使用场景

    1.mybatis中resultMap与resultType的区别

    (1)实体类的名字和数据库相同时,可以直接设置resultType参数为pojo类

     <select id="findByParent" resultType="com.cy.store.entity.District">
            SELECT *
            FROM t_dict_district
            WHERE parent = #{parent}
            ORDER BY CODE ASC;
      select>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    (2)若不同,需要设置resultMap将查询结果集中的列一一映射到bean对象的各个属性

     <resultMap id="resultUser" type="com.cy.store.entity.User">
            <result column="created_user" property="createdUser">result>
            <result column="created_time" property="createdTime">result>
            <result column="modified_user" property="modifiedUser">result>
            <result column="modified_time" property="modifiedTime">result>
     resultMap>
    <select id="findByUsername" resultMap="resultUser">
            select *
            from t_user
            where username = #{username}
      select>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    注意:column为数据库表的字段名称,property为实体的属性名称
    要想理解parameterType和parameterMap的区别
    我们以下面这个mapper接口中的方法为例
    Cart findByUidAndPid(
    @Param(“uid”) Integer uid,
    @Param(“pid”) Integer pid
    );

    2.parameterType和parameterMap的区别

    (1)parameterType的使用

    //行内参数映射

    <select id="findByUidAndPid"  parameterType="java.lang.Integer">
           SELECT *
           FROM t_cart
           WHERE uid = #{uid}
             AND pid = #{pid};
       select>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    (2)parameterMap的使用

    注意:要把占位符#{}改为?

     <parameterMap id="cart" type="com.cy.store.entity.Cart">
            <parameter property="uid"/>
            <parameter property="pid"/>
        </parameterMap>
         <select id="findByUidAndPid"  parameterMap="cart">
            SELECT *
            FROM t_cart
            WHERE uid = ?
              AND pid = ?;
        </select>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    (3)使用场景

    (1)观看上面两种方法,我们会发现使用行内参数映射比parameterMap配置看起来更直观,阅读性更强,这里只是两个参数,所以是两个?,如果我们有100个参数呢?
    (2)实际上,parameterMap元素很少被使用,因为他和select|insert|update|delete元素的parameterType属性的作用类似。
    而且就连parameterType属性也很少使用,因为mybatis可以通过类型处理器(TypeHandler)推断出具体传入语句的参数类型:

  • 相关阅读:
    小程序一键链接WIFI
    Linux shell编程学习笔记5:变量命名规则、变量类型、使用变量时要注意的事项
    微机原理与技术接口 实验五 基本IO操作温度控制实验
    STM32 HAL库F103系列之ADC实验(三)
    22-06-28 西安 redis(02) 持久化机制、入门使用、事务控制、主从复制机制
    Linux:Command ‘vim‘ not found, but can be installed with:
    leetcode写题笔记 -- 罗马数字转整数
    CSS色域、色彩空间、CSS Color 4新标准 | 京东云技术团队
    Google警告黑客如何滥用日历服务作为隐蔽的C2信道
    Django
  • 原文地址:https://blog.csdn.net/y516369/article/details/126130907
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号