java中的无效的列类型_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的更多用法:

/**

*

* 当该Field为类对象时, 可使用#{对象.属性}来映射到数据表.

*

*

* 支持:@TableField(el = "role, jdbcType=BIGINT)

* 支持:@TableField(el = "role, typeHandler=com.baomidou.springcloud.typehandler.PhoneTypeHandler")

*

*/

String el() default "";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Caused by: java.sql.SQLException: 无效类型: 1111是一个数据库错误,表示在执行数据库操作时,尝试使用了无效类型 1111。这个错误通常是由于数据库类型与代码定义的类型不匹配导致的。具体来说,可能是数据库类型与代码的映射类型不一致,或者是数据库类型被修改或删除了。 要解决这个问题,可以尝试以下几种方法: 1. 检查代码定义的类型和数据库实际的类型是否一致。确保它们之间的映射关系正确无误。 2. 检查数据库表结构是否发生了变化。如果数据库类型被修改或删除了,需要相应地更新代码的映射关系。 3. 检查数据库连接和驱动是否正确。确保使用的数据库连接和驱动与代码的数据库操作兼容。 4. 如果以上方法都没有解决问题,可以尝试修改代码的JdbcType设置。根据错误提示,尝试设置不同的JdbcType类型来适配数据库类型。 总之,Caused by: java.sql.SQLException: 无效类型: 1111是一个数据库错误,通常是由于数据库类型与代码的映射关系不匹配导致的。通过检查代码和数据库表结构,以及适配JdbcType类型,可以解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Cause: java.sql.SQLException: 无效类型: 1111解决](https://blog.csdn.net/zhou_438/article/details/83476905)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [java.sql.SQLException: Invalid column type: 1111](https://blog.csdn.net/duzhe1991/article/details/126441988)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值