码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MyBatis学习:mapper.xml文件中传参时,标签使用javaType和jdbcType属性


    1、本篇博文的背景和目的

    目前我本人正在学习MyBatis框架,在原先了解并且懵懵懂懂使用的基础上,开始系统正式的学习。阐述了MVC架构模式和三层架构,明晰了在Web项目中的普遍编码层次,回顾了JDBC连接数据库,建立了使用MyBatis和MySQL的Maven项目,解释了STDOUT_LOGGING日志和手动提交事务,记录了MyBatis中#占位符的使用方法,回顾了MyBatis执行SQL语句的过程和使用到的一些重要类和接口,记录了将固定化的代码整合到一个工具类MyBatisUtil中,以减少代码量。记录了dao层接口的实现以及为什么要实现它。记录了MyBatis动态代理和使用动态代理的要求以及使用了动态代理生成的实现类,记录了parameterType属性和它的使用。记录了MyBatis框架下执行SQL语句传递简单类型参数的方法。本篇博客记录mapper.xml文件传参时,使用javaType属性和jdbcType属性。

    2、我的上一篇博文

    上一篇博文记录的是给SQL语句传递实体类对象参数的方法,感兴趣的读者可以查阅,链接如下:

    MyBatis学习:MyBatis框架下执行SQL语句传递实体类参数_你是我的日月星河的博客-CSDN博客目前我本人正在学习MyBatis框架,在原先了解并且懵懵懂懂使用的基础上,开始系统正式的学习。阐述了MVC架构模式和三层架构,明晰了在Web项目中的普遍编码层次,认识了框架,回顾了JDBC连接数据库,建立了使用MyBatis和MySQL的Maven项目,解释了STDOUT_LOGGING日志和手动提交事务,记录了MyBatis中#占位符的使用方法,回顾了MyBatis执行SQL语句的过程和使用到的一些重要类和接口,记录了将固定化的代码整合到一个工具类MyBatisUtil中,以减少代码量。...https://blog.csdn.net/weixin_46281472/article/details/126089273

    3、使用javaType属性和jdbcType属性使用的代码位置

    javaType属性和jdbcType属性应用在mapper.xml文件的标签内,传参的时候  #{  }  内部。这里我直接给出示例:

    1. <select id="selectByQueryParam2" resultType="com.bjpowernode.domain.Student">
    2.     select * from student where
    3.     name=#{p1,javaType=java.long.String,jdbcType=VARCHAR} or
    4.     age=#{p2,javaType=java.long.Integer,jdbcType=INTEGER}
    5. select>

    可以从名字中看出来:javaType就是指定传过来的参数的所属java类型,javaType属性值是类型的全限定路径名称,当然也可以是别名。这个在MyBatis官方文档手册中有,与resultType属性值有点类似。jdbcType就是标识指定出对应的数据库中字段的类型。jdbcType属性值在MyBatis官方文档手册中是有的。这里我粘贴一下java中的类型和数据库中的类型之间的对应,如下所示:

    1. JDBC Type Java Type
    2. CHAR String
    3. VARCHAR String
    4. LONGVARCHAR String
    5. NUMERIC java.math.BigDecimal
    6. DECIMAL java.math.BigDecimal
    7. BIT boolean
    8. BOOLEAN boolean
    9. TINYINT byte
    10. SMALLINT short
    11. INTEGER INTEGER
    12. BIGINT long
    13. REAL float
    14. FLOAT double
    15. DOUBLE double
    16. BINARY byte[]
    17. VARBINARY byte[]
    18. LONGVARBINARY byte[]
    19. DATE java.sql.Date
    20. TIME java.sql.Time
    21. TIMESTAMP java.sql.Timestamp
    22. CLOB Clob
    23. BLOB Blob
    24. ARRAY Array
    25. DISTINCT mapping of underlying type
    26. STRUCT Struct
    27. REF Ref
    28. DATALINK java.net.URL

    4、javaType属性和jdbcType属性的使用场景

    其实在一般写项目的时候,这两个属性是不写的,就像是parameterType一样,是可有可无的。

    但是,当写一个  代码生成器的时候,这个就需要必须加上去,为了自动生成代码的准确性。能写代码生成器程序的,我目前认为肯定也是经验很丰富的程序员了!!

    5、我的下一篇博文

  • 相关阅读:
    管理类联考——数学——汇总篇——知识点突破——数据分析——计数原理——排列组合——排队
    web前端面试题附答案003-说一下你都用过那些格式的图片
    关键字this的指向
    颜色的识别方法和探索 基于matlab
    JEECG shiro验证实现分析
    【踩坑专栏】禁止kafka自带的日志
    前瞻|Java 21 新特性 String Templates(字符串模版)
    【数学建模】——力学模型建立的基本理论及方法
    [附源码]计算机毕业设计JAVAjsp大学生兼职招聘网站
    [附源码]Python计算机毕业设计Django医学图像管理平台
  • 原文地址:https://blog.csdn.net/weixin_46281472/article/details/126172553
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号