达梦数据库报错:java.lang.IllegalArgumentException: Database product name must not be null

项目部分功能从别的平台移植过来,运行报错如上:java.lang.IllegalArgumentException: Database product name must not be null。一看到这个错第一反应是数据库中缺少表或者表中少字段,所以去检查了这段代码运行需要的所有表,并不缺少;又再去将表中的字段对了一遍,很坑,字段也不少。

进一步分析:将sql语句打印出来在数据库运行,发现运行不了。原来是数据库语句的问题。原项目使用的是MySql数据库,现项目使用的是达梦数据库,其中有部分代码语句,达梦数据库无法识别,故此报错。到此问题找到。

下面解决问题:原sql语句为DSL.timestampAdd(TBL_MONITOR_DEV_COMMAND_HISTORY.CREATE_TIME, day, DatePart.DAY,意思是在表中某字段时间的基础上再加上一个可设置的时间基础,在与其他条件进行比较。这句sql语句在达梦数据库中无法识别。在网上搜索了下,关于达梦数据库的资料比较少。又找了下达梦数据库手册,在里面找到了关于时间加减的sql语句,将原代码修改如下:DSL.field("TBL_MONITOR_DEV_COMMAND_HISTORY.CREATE_TIME+"+day。

再次启动项目,运行正常。

总结:MySql数据库和达梦数据库在语法上是有区别的,针对具体数据库的相同功能的语句不一定一样,需要查验手册,不可自以为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值