mybatis中Errorsetting null forparameter #2 怎么解决??
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis中Errorsetting null forparameter #2 怎么解决??相关的知识,希望对你有一定的参考价值。
我是在select的时候报的这个错,查询入参都有数据的,但是为什么会报这个问题呢?
Errorsetting null forparameter #2 with JdbcType OTHER
适配oracle数据库的时候,mybatis报了Error setting null parameter,bug发现是参数出现了null值,对于Mybatis,如果进行操作的时候,没有指定jdbcType类型的参数,就可能导致问题。
postgreSQL,MySQL,SQLSERVER都支持JdbcType.NULL类型,Oracle是不支持,适配的时候也因为这个问题导致mybatis报错。
比如,之前配置#submitDate,它会在oracle中报错:Error setting null parameter
更改成#submitDate,jdbcType=DATE,注意jdbcType是区分大小写的。
参考技术A 你看下,传进去的第二个参数是个null自己改一下就行了本回答被提问者采纳
mybatis-plus getObj方法返回null
在mybatis-plus低版本中自定义查询,selectObj(Condition.create().setSqlSelect("columns...")),低版本中
selectObj(Condition.create().setSqlSelect("max(sort)").isNull("parent_id"));
返回Object为查询结果max(sort)。可自己做类型转换。
升级到高版本后放弃Condition拼接SQL,代码如下:
QueryWrapper<Menu> wrapper = new QueryWrapper<>();
Object o = getObj(wrapper.select("max(sort)").isNull("parent_id"));
此处返回的Object为空,认真一点会发现,返回对象应该是泛型对应的Menu对象,个人暂认为(猜测)是属性名对应不到实体,所以返回时处理了异常返回null(在下在这里偷懒了,没看源码全个人猜想,猜想错了望批评指正),我加上别名的时候发现跟我预想的一样。
QueryWrapper<Menu> wrapper = new QueryWrapper<>();
Object o = getObj(wrapper.select("max(sort) as sort").isNull("parent_id"));
此时返回一个Menu对象,sort为我需要的结果。希望看到文章的你也能细心一点,注意返回对象。
QueryWrapper<Menu> wrapper = new QueryWrapper<>();
Object o = getObj(wrapper.select("max(sort) as sort").isNull("parent_id"));
以上是关于mybatis中Errorsetting null forparameter #2 怎么解决??的主要内容,如果未能解决你的问题,请参考以下文章
Mybatis中resultType个别字段获取数据为null