UncategorizedSQLException Mybatis中jdbcType的作用
使用MyBatis框架做更新操作时,在该字段需要更新的内容为空时,就会出现1111错误,也就是无效的列类型,这个时候你就要使用jdbcType。至于什么时候要使用到javaType我还没遇到过,而且我也没有听说过要使用javaType。
异常显示如下:
Exception in thread "main" org.springframework.jdbc.UncategorizedSQLException: Error setting null for parameter #6 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的列类型: 1111
; uncategorized SQLException for SQL []; SQL state [99999]; error code [17004]; 无效的列类型: 1111; nested exception is java.sql.SQLException: 无效的列类型: 1111
mybatis insert空值报空值异常,但是在pl/sql不会提示错误,主要原因是mybatis无法进行转换,
错误日志是在:org.apache.ibatis.type.BaseTypeHandler这个类的第17行打出的。
if (parameter == null) {  
  if (jdbcType == null) {  
  try {  
  ps.setNull(i, JdbcType.OTHER.TYPE_CODE);  
  } catch (SQLException e) {  
  throw new TypeException("Error setting null parameter. Most JDBC drivers require that the JdbcType must be specified for all nullable parameters. Cause: " + e, e);  
  }  
  } else {  
  ps.setNull(i, jdbcType.TYPE_CODE);  
  }  
  } else {  
  setNonNullParameter(ps, i, parameter, jdbcType);  
  }  
可以看出,是因为你传入的参数的字段为null对象无法获取对应的jdbcType类型,而报的错误。
你只要在insert语句中insert的对象加上jdbcType就可以了,修改如下:
#{menuTitle,jdbcType=VARCHAR}
UncategorizedSQLException Mybatis中jdbcType的作用的更多相关文章
- mybatis中jdbcType的作用和是否必须
		1. mybatis中 jdbcType 时间类型 当jdbcType = DATE 时, 只传入了 年月日 jdbcType = TIMESTAMP , 年月日+ 时分秒 2. jdbcType ... 
- mybatis 中jdbctype和javatype的对应关系
		1:mybatis 中jdbctype和javatype的对应关系 JDBC Type Java Type CHAR String VARCHAR String LONGVARCHAR String ... 
- MyBatis中jdbcType=INTEGER、VARCHAR作用
		Mapper.xml中 pid = #{pid,jdbcType=INTEGER} pid = #{pid} 都可以用 Mybatis中什么时候应该声明jdbcType? 当Mybatis不能自动识别 ... 
- Mybatis中jdbcType和javaType对应关系
		Mybatis中javaType和jdbcType对应关系 JDBC Type Java Type CHAR String VARCHAR ... 
- mybatis中jdbcType和javaType
		1.MyBatis 通过包含的jdbcType类型 BIT.FLOAT.CHAR .TIMESTAMP . OTHER .UNDEFINEDTINYINT .REAL .VARCHAR .BINARY ... 
- mybatis中<![CDATA[]]>的作用
		此篇文章引自QH_JAVA的文章 在使用mybatis 时我们sql是写在xml 映射文件中,如果写的sql中有一些特殊的字符的话,在解析xml文件的时候会被转义,但我们不希望他被转义,所以我们要使用 ... 
- 转载:mybatis中<![CDATA[]]>的作用
		作者:QH_JAVA 来源:CSDN 原文:https://blog.csdn.net/qh_java/article/details/50755655?utm_source=copy 在使用myba ... 
- mybatis中jdbcType与oracle/mysql数据类型对应关系
		Mybatis JdbcType Oracle MySql JdbcType ARRAY JdbcType BIGINT BIGINT JdbcType BINARY JdbcTy ... 
- Mybatis中jdbcType和javaType、typeHandler的对照关系
		JdbcType与Oracle.MySql数据类型对应列表,及 JdbcType Oracle MySql CHAR CHAR CHAR VARCHAR VARCHAR VARCHAR LONGV ... 
随机推荐
- linux命令   把Windows 文件拷贝到linux
			scp build.zip mesadmin@dpydalapp01.sl.bluecloud.ibm.com:/tmp // 把Windows上的build.zip拷贝到mesadmin@dpy ... 
- Rails上传文件
			1.view <%= form_tag({:method =>"post",:controller =>"welcome",:action=& ... 
- python django ORM 性能优化  select_related & prefetch_related
			q = models.UserInfo.objects.all() select * from userinfo select * from userinfo inner join usertype ... 
- mysql如何开启远程连接(默认未开启,即使密码正确,仍然无法访问)
			mysql如何开启远程连接 | 浏览:1846 | 更新:2015-03-11 20:19 1 2 3 4 5 6 分步阅读 百度经验:jingyan.baidu.com 大家在公司工作中,经常会遇到 ... 
- 监控和安全运维  1.4 nagios安装
			1. Nagios 简介是一个开源软件,可以监控网络设备网络流量.Linux/windows主机状态,甚至可以监控打印机它可以运行在Linux上或windows上基于浏览器的web界面方便运维人员查看 ... 
- mysql中表触发器的简单使用
			以前有接触过触发器,但没有亲自写过,所以在这里简单写个例子: 功能为:两张表t_test,t_emp;给t_test添加触发器让t_test每插入一条数据,就给t_emp中num字段值增1: 1,建立 ... 
- [Python Study Notes]堆叠柱状图绘制
			''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ... 
- Jedis连接redis的一些基本操作
			Jedis其实就是redis的一个连接方式 需要的jar包: 
- EMR问题
			-- 门急诊患者生命体征信息 select t.clinic_code, t.*,t.rowid from ptm_opr_maininfo t where t.patient_id='0000E05 ... 
- angularjs+requlirejs 搭建前端框架(1)
			第一部分:发发牢骚吧 随着富前端时代的逐渐深入,越来越多的前端技术框架层出不穷,可以说是百花齐放.让我们这些爱好前端的人疲于奔命,今天学习这个框架,明天研究那个框架,哎,说不出的蛋疼...感觉好累.. ... 
