使用mybatis-plus批量插入遇到的两个问题记录

最近应用系统适配时,使用mybatis plus遇到的两个问题记录。

环境说明

Mybatisplus:3.1.1
DM数据库:DM V8 03134283890-20220518-160920-10045
DM数据库兼容性参数设置:COMPATIBLE_MODE=4

问题1:使用mybatis-plus批量插入保存报错

报错信息:
Java.lang.RuntimeException:index out of range

使用mybatis-plus批量插入遇到的两个问题记录_第1张图片

解决办法:
当前程序使用DmJdbc驱动包版本比较旧(8.1.1.49),更换为较新版本(2021年下半年以后的驱动包版本)解决。

问题2:使用mybatis-plus批量插入报错“月份必须介于1和12之间”和“字符串截断”

该问题在问题1处理之后出现。根据应用后台打印输出发现批量插入的数据并没有问题,但是后台会出现下面两个报错。
两个报错信息:
“月份必须介于1和12之间”
“字符串截断”

使用mybatis-plus批量插入遇到的两个问题记录_第2张图片

使用mybatis-plus批量插入遇到的两个问题记录_第3张图片

原因排查:
使用同一套代码连接另外的数据库实例(该数据库实例初始化参数、表对象等均相同)执行上述操作正常。通过比对dm.ini参数文件,发现执行报错环境数据库dm.ini参数文件中BATCH_PARAM_OPT=1,而执行正常的环境数据库dm.ini中该参数为0(默认值)。修改BATCH_PARAM_OPT参数为0后执行正常。

解决办法:
修改数据库dm.ini参数BATCH_PARAM_OPT=0
(1)SP_SET_PARA_VALUE(2,’BATCH_PARAM_OPT’,0);
(2)重启数据库服务。

你可能感兴趣的:(达梦,mybatis,达梦数据库)