1. 程式人生 > >mysql 批量更新出錯

mysql 批量更新出錯

### Cause: 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 'update tcps_freight_summary                  SET UPSTREAM_MONEY = '0.00',                                                                   ' at line 20 ; bad SQL grammar []; nested exception is 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 'update tcps_freight_summary                  SET UPSTREAM_MONEY = '0.00',                                                                   ' at line 20     at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:231)     at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)     at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)     at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:371)     at com.sun.proxy.$Proxy18.update(Unknown Source)     at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:254)     at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:54)     at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:52)     at com.sun.proxy.$Proxy19.updateRecord(Unknown Source)     at com.study.service.task.TcpsSystemTimingTask.feeStatistics(TcpsSystemTimingTask.java:247)     at com.alibaba.dubbo.common.bytecode.Wrapper2.invokeMethod(Wrapper2.java)     at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46)     at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72)     at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53)     at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:64)     at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)     at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75)     at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)     at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42)     at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)     at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78)     at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)     at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:60)     at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)     at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:112)     at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)     at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38)     at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)     at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38)     at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)     at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:108)     at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84)     at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170)     at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52)     at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82)     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)     at java.lang.Thread.run(Thread.java:745) Caused by: 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 'update tcps_freight_summary                  SET UPSTREAM_MONEY = '0.00',                                                                   ' at line 20     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)     at java.lang.reflect.Constructor.newInstance(Constructor.java:423)     at com.mysql.jdbc.Util.handleNewInstance(Util.java:389)     at com.mysql.jdbc.Util.getInstance(Util.java:372)     at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:980)     at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3835)     at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3771)     at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435)     at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582)     at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2535)     at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1911)     at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1203)     at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:2931)     at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)     at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:2929)     at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:118)     at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:493)     at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:498)     at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:62)     at com.sun.proxy.$Proxy25.execute(Unknown Source)     at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:44)     at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:69)     at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:48)     at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:105)     at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:71)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:498)     at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)     at com.sun.proxy.$Proxy23.update(Unknown Source)     at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:152)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:498)     at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:358)     ... 34 more  

確保沒有語法錯誤的前提下,出錯一般是jdbc配置檔案少了 

base.jdbc.url=jdbc:mysql://******/study_base?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull

在最後加上&allowMultiQueries=true 就好了