java.sql.SQLException: 无效的列类型: 1111

在使用Mybaits Plus更新数据时报错:

2018-09-05 10:55:40.712 DEBUG 15828 --- [nio-8110-exec-1] c.c.x.s.m.A.updateAllColumnById          : ==>  Preparing: UPDATE ais0060 SET TENANT_ID=?,LIFNR=?,NAME1=?,ORT01=?,TELF1=?,del_flag=?,remarks=?,create_by=?,create_date=?,update_by=?,update_date=? WHERE id=?
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property=‘et.tenantId‘, 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
	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
	at com.sun.proxy.$Proxy124.update(Unknown Source)
	at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:294)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:62)  

原因为TENANT_ID字段为null。

网查原因大多给出Mybatis修改XML中的SQL写法,但是Mybatis Plus基础CRUD不需要手写SQL,整了半天,找到一种解决方法:

    /**
     * 租户ID
     */
    @TableField(value = "TENANT_ID", el = "tenantId, jdbcType=VARCHAR")
    private String tenantId;

  

在@TableField注解中增加{对象.属性}。同时,el的更多用法:

    /**
     * <p>
     * 当该Field为类对象时, 可使用#{对象.属性}来映射到数据表.
     * </p>
     * <p>
     * 支持:@TableField(el = "role, jdbcType=BIGINT)<br>
     * 支持:@TableField(el = "role, typeHandler=com.baomidou.springcloud.typehandler.PhoneTypeHandler")
     * </p>
     */
    String el() default "";

  

Mybatis写SQL语句修改方法参见:https://blog.csdn.net/stronglyh/article/details/45369611

jdbcType介绍参见:https://www.cnblogs.com/tongxuping/p/7134113.html

原文地址:https://www.cnblogs.com/beiifeng/p/9591078.html

时间: 2024-10-20 16:46:36

java.sql.SQLException: 无效的列类型: 1111的相关文章

【错误笔记】MyBatis SQLException: 无效的列类型: 1111

问题描述: org.springframework.jdbc.UncategorizedSQLException: 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.SQLExceptio

java.sql.SQLException: 无效的列索引

“无效的列索引”其实是个低级的错误,原因无非几个: 1.sql串的?号数目和提供的变量数目不一致: 例如:jdbcTemplate.update(sql, new Object[] {newState,oldState}); 如果sql里面有1个?号,Object[]送了2个,就会报错. 2.sql串里的?号书写不正确 英文?和中文?有时难以区分. 3.sql串的?号用''括了起来. 例如:sql="UPDATE abc SET abc.name='?' WHERE abc.id='?'&quo

Mybatis:使用bean传值,当传入值为Null时,提示“无效的列类型”的解决办法

问题描述: 在使用mybatis对数据库执行更新操作时,parameterType为某个具体的bean,而bean中传入的参数为null时,抛出异常如下: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='pxh',

框架中无效的列类型异常分析

org.springframework.jdbc.UncategorizedSQLException: Error setting null for parameter #5 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的

mybatis 无效的列类型

项目报错为: [FaultEvent fault=[RPC Fault faultString="org.springframework.jdbc.UncategorizedSQLException : Error setting null parameter. Most JDBC drivers require that the JdbcType must be specified for all nullable parameters. Cause: java.sql.SQLExceptio

java.sql.SQLException: Column &#39;class&#39; not found.异常没有找到列

1 /**处理当个对象的 ,rs中要么有一条,要么一条没有. 2 * @param <T> 3 */ 4 public class BeanHandler<T> implements ResultSetHandler<T> { 5 private Class<T> type; 6 public BeanHandler(Class<T> type){ 7 this.type = type; 8 } 9 /**将rs->T t 10 */ 11

java.sql.SQLException: ORA-00911: 无效字符

今天写一个查询SQL的时候,出现了"java.sql.SQLException: ORA-00911: 无效字符"的问题,各种百度问题找答案,说是SQL语句中多了不该有的符号.我的是多了分号,因为SQL语句在PL/SQL中试过没问题,就直接复制粘贴过来用了,结果,底层SQL语句不能有分号 错误代码如下: 然后控制台就报了如下错误: 把红色方框里面的分号去掉,然后就没有错误了.哎,写代码小细节贼多.

java连接sqlserver2008报错 java.sql.SQLException: 对象名 &#39;表名&#39; 无效.

注意:c3p0的数据库配置方式为: <named-config name="sqlsvr"> <property name="driverClass">net.sourceforge.jtds.jdbc.Driver</property> <property name="jdbcUrl">jdbc:jtds:sqlserver://localhost:1433/WaterNet_DaFeng<

java.sql.SQLException: 调用中无效的参数DSRA0010E: SQL 状态 = null,错误代码 = 17,433

在节点 cnshh171Node01 上的服务器 server1 上,对数据源 testj2cbug 执行的测试连接操作由于以下异常 java.sql.SQLException: 调用中无效的参数DSRA0010E: SQL 状态 = null,错误代码 = 17,433 而失败. 查看 JVM 日志 JVM 日志: java.sql.SQLException: invalid arguments in call DSRA0010E: SQL State = null, Error Code =