Sql-Exception

今天写项目遇到了几个SQL-exception 和以前不同,我也没看懂它为啥那样报错,所以就在这整理了一下
我们公司开发的是ibatis框架

java.sql.SQLException: 无效的列类型
解决方法:
一:
原因:插入语句中有字段为Null(采用setObject(i+1, params[i])赋值)
解决:将空值字段赋值等
二:
往在number或date型字段插入字符型数据时,就会有这样的提示。
出现这种情况,很多都是在写程序中,插入的值和字段的对应顺序错了,或者少写了个逗号之类的
三:
指定插入值得jdbcType,将sql改成 insert into user(id,name) values(#{id,jdbcType=VARCHAR},#{name,jdbcType=VARCHAR}) 



四:
在mybatis-config.xml文件中配置一下,添加settings配置,如下:(推荐)
<configuration>
......

<settings>
    <setting name="jdbcTypeForNull" value="NULL" />
</settings>

......
</configuration>

五:
  在mapper.xml里不能写中文!!!
然后遇到的第二个问题,
就是报SQL的group  by 语句错误,
正常的处理错误的逻辑不就是将错误的语句拿出来放到plsql里跑一下嘛,
但是plsql里是没问题的,后来请了大神过来解决了,
这个还是mybatis里#和$的区别,大家可以去看一下。

这里写图片描述

下面说一下SQL异常的大概处理方式啊
好久没涉及这些处理了,昨天遇到了还有点懵逼,
当时我的错误是无效的字段类型,正常SQL语句都是这类的,
什么什么NULL啊,这个时候你就应该很清楚是你SQL语句写错了,
但是是哪一块SQL语句写错了呢,这个时候你就得去跟代码了,
找到出错的第一句,然后上面有个有对应的SQL语句,
把它copy出来,放入数据库,然后对应的字段替换一下,
运行查找出错误,下面是我昨天的一个错误,有点low,
贴出来大家不要见笑

这里写图片描述

mybatis中的#和$的区别,之前整理了一下:
http://blog.csdn.net/z1729734271/article/details/52469013

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值