当前使用版本(必填,否则不予处理)

3.5.3

该问题是如何引起的?(确定最新版也有问题再提!!!)

01:想在更新的时候设置字段为空,但是在运行的时候提示: 无效的列类型: 1111

02:写法参照的是官网 问答 里面的示例: MyBatis-Plus 使用mybatis-Plus 3.x 版本通过 UpdateWrapper设置字段值为空,但报错:无效的列类型

重现步骤(如果有就写完整)

01:通过UpdateWrapper设置字段值为空: MyBatis-Plus 使用mybatis-Plus 3.x 版本通过 UpdateWrapper设置字段值为空,但报错:无效的列类型

02:执行的时候报错: MyBatis-Plus 使用mybatis-Plus 3.x 版本通过 UpdateWrapper设置字段值为空,但报错:无效的列类型

报错信息

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='ew.paramNameValuePairs.MPGENVAL1', mode=IN, javaType=class java.lang.Object, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的列类型: 1111

Comment From: GitBySzl

MyBatis-Plus 使用mybatis-Plus 3.x 版本通过 UpdateWrapper设置字段值为空,但报错:无效的列类型

Comment From: miemieYaho

那就是驱动或者连接池或者其他mybatis.configuration配置的问题

Comment From: GitBySzl

唔,谢谢!但不知道该怎么定位这个问题具体出在哪里,冒昧的问一下您有好的建议嘛(万分感谢)百度了一圈没找到跟我类似的情况,这个问题困扰我好久了。。

贴一下我的数据库相关的配置:

依赖包版本

<!-- mybatis-plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3</version>
    <exclusions>
        <exclusion>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>3.5.3</version>
</dependency>

<!-- oracle -->
<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>12.2.0.1</version>
</dependency>

<!-- sqlserver -->
<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>sqljdbc4</artifactId>
    <version>4.0</version>
</dependency>

<!--多数据源-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.20</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
    <version>2.5.6</version>
</dependency>

启动配置

server:
  port: 8888
spring:
  datasource:
    dynamic:
      primary: DB_Oracle
      datasource:
        DB_Oracle:
          url: jdbc:oracle:thin:@10.20.50.80:1521/DXM0
          username: LS
          password: LS
          driver-class-name: oracle.jdbc.driver.OracleDriver
        DB_SqlServer:
          url: jdbc:sqlserver://10.20.50.111:1433;DatabaseName=measure
          username: dxyl
          password: dxyl@qaz123
          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
      druid:
        initial-size: 1
        max-active: 20
        min-idle: 1
        max-wait: 60000
      autoconfigure:
        exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 去除druid配置
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

Comment From: miemieYaho

那是oracle的问题,百度搜吧

Comment From: GitBySzl

好的,谢谢咯

Comment From: GitBySzl

已解决,加一段配置即可~ MyBatis-Plus 使用mybatis-Plus 3.x 版本通过 UpdateWrapper设置字段值为空,但报错:无效的列类型