:::info
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 16
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_151]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_151]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_151]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_151]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[mysql-connector-java-5.1.46.jar:5.1.46]
at com.mysql.jdbc.Util.getInstance(Util.java:408) ~[mysql-connector-java-5.1.46.jar:5.1.46]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944) ~[mysql-connector-java-5.1.46.jar:5.1.46]
:::
看插入的日志,发现插入的数据为空的 ,导致的报错
:::info
==> Preparing: insert into dm_dictionary ( GROUP_NO, GROUP_KEY, GROUP_NAME, ENABLED, VERSION, CREATE_USER_ID, CREATE_USER_NAME, CREATE_TIME, UPDATE_USER_ID, UPDATE_USER_NAME, UPDATE_TIME, AREA_CODE, DATA_TYPE ) values
==> Parameters:
2023-03-20 15:25:30.588 ERROR 540 --- [nio-8010-exec-4] druid.sql.Statement : {conn-110003, pstmt-120021} execute error. insert into dm_dictionary (
GROUP_NO,
GROUP_KEY,
GROUP_NAME
)
values
:::
因为我这个是从达梦数据库同步数据导mysql数据库,数据库可以正常连接,然后通过sql去查询也是正常,我就觉得好奇怪,但是断点进去确实显示查询的是空的
发现连接时正常的 ,但是执行导resultSet.next()的时候返回的false,因为数据为空所以才返回的false。
从问题去分析:
1.数据库连接时正常,说明数据库没有问题
2.sql执行也是正常,只是返回的数据为空,但是数据中的数据是存在。
然后我百度了一下 ,发现说可能是你插入了数据,没有进行commit,瞬间点醒了
因为我的数据是早上通过工具导入导数据库中的 ,会不存在工具导入的时候没有提交呢。如果我commit了一下,结果还真的是,执行完数据脚本的时候记得commit一下