• Mybatis中什么时候应该声明jdbcType


    转:http://blog.csdn.net/l799069596/article/details/52052777

    疑问来自于,有时候Mapper.xml中

    pid = #{pid,jdbcType=INTEGER}

    pid = #{pid}

    都可以用

    那么问题来了,

    Mybatis中什么时候应该声明jdbcType?

    当Mybatis不能自动识别你传入对象的类型时。

    什么情况下,Mybatis不能自动识别我的传入类型?

    例如:当你传入空值的时候。

    简而言之,加上肯定不会报错。

    来源:Is jdbcType necessary in a MyBatis mapper?

    引用:

    As you mentioned yourself, you need to specify the jdbcType when passing null values for parameters.

    Some databases need to know the value's type even if the value itself is NULL. For this reason, for maximum portability, it's the JDBC specification itself that requires the type to be specified and MyBatis needs to pass it along since it's build on top of JDBC.

    From the MyBatis documentation:

    The JDBC type is only required for nullable columns upon insert, update or delete. This is a JDBC requirement, not a MyBatis one. So even if you were coding JDBC directly, you'd need to specify this type – but only for nullable values.

    Most of the times you don't need to specify the jdbcType as MyBatis is smart enough to figure out the type from the objects you are working with. But if you send your parameters to the MyBatis statement inside a HashMap, for example, and one of the parameters is null, MyBatis won't be able to determine the type of the parameter by looking at the HashMap because the HashMap is just a generic Container and null itself carries no type information. At that point it would be o good idea to provide the jdbcType so that switching the database implementation later on does not cause any issues with null values.

  • 相关阅读:
    HANDLE CreateThread()
    偷懒的一天-jQuery之事件与应用
    web进阶之jQuery操作DOM元素&&MySQL记录操作&&PHP面向对象学习笔记
    无聊的周五晚上
    闲里偷闲
    被蚊子和自己搞毁的一天
    数据库有点意思
    周一周一周。。一
    无聊到周六的教研室
    1.Nginx相关概念
  • 原文地址:https://www.cnblogs.com/fengli9998/p/7458106.html
Copyright © 2020-2023  润新知