前段时间同事在项目当中使用到多数据源,项目集成的是mybatis plus ,遇到一个非常神仙的BUG,有数据源A ,数据源B,针对数据源A的所有操作都没有问题,针对数据源B的所有操作,除了批量的操作也都没有问题!!! 项目不规范引起的Mybatis Plus多数据源批量操作提示表不存在的问题 无
问题说明 最近在工作中有一个业务需求:传入一个时间,和数据库某个时间字段进行运算,返回相差的天数。很简单的一个需求,之前sql方面比较菜,都是现将数据查询出来然后在进行计算,刚好最近写了很多的sql,有所成长,知道可以通过ceil函数直接一条sql就能查询出我想要的数据,不需要查询出来之后在进行运算。 oracle 两个时间相减 出现的错误 sql和代码都写好之后,测试报错: ==ORA-00932: 数据类型不一致== 然后检查数据库字段类型,检查参数类型,都是Date类型。这个时候有点蒙圈 问题原因 最后一想,既然类型一致,那么在传参的时候传的是什么类型呢?查看mybatis sql日志。sql日志第二行,参数后面的类型显示为:timestamp。就想到了在传参的时候就指定参数类型,也就是jdbcType。设置了jdbcType=DATE之后问题就解决了。 下面是在网上找的jdbcType关系说明 JDBC Type Java Type CHAR String VARCHAR String LONGVARCHAR String NUMERIC java.math.BigDec....... 由Mybatis的时间类型计算报错引出的jdbcType 无