真的无语了,
DAO:
@Override
public List<ShopDynamicData> queryBatchForAllByMod(int totalNum, int modVal, int offset, int pageSize) {
Map<String, Object> param = new HashMap<String, Object>(4);
param.put("totalNum", totalNum);
param.put("modVal", modVal);
param.put("offset", offset);
param.put("pageSize", pageSize);
return (List<ShopDynamicData>) daoSupportMysql.queryForList(NAMESPACE + ".queryBatchForAllByMod", param);
}
DAO所对应的ibatis xml配置:
<select id="queryBatchForAllByMod" parameterClass="Map" resultClass="ShopDynamicData">
select
seller_id as sellerId,
new_time as newTime,
last_sell_time as lastSellTime
from seller_dynamic_info
where mod(id,#totalNum#)=#modVal#
limit #offset#, #pageSize#
</select>
每次执行到该方法的时候都会抛出异常,堆栈是这样的:
org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0];
--- The error occurred in dal/sqlmap/sqlmap-uac-seller-dynamic-info-mysql.xml.
--- The error occurred while applying a parameter map.
--- Check the SellerDynamicInfo.queryBatchForAllByMod-InlineParameterMap.
--- Check the statement (query failed).
--- Cause: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: 分析sql错误,错误的sql是: select seller_id as sellerId, new_time as newTime, last_sell_time as lastSellTime from seller_dynamic_info where mod(id,?)=? limit ?, ? ; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in dal/sqlmap/sqlmap-uac-seller-dynamic-info-mysql.xml.
--- The error occurred while applying a parameter map.
--- Check the SellerDynamicInfo.queryBatchForAllByMod-InlineParameterMap.
--- Check the statement (query failed).
--- Cause: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: 分析sql错误,错误的sql是: select seller_id as sellerId, new_time as newTime, last_sell_time as lastSellTime from seller_dynamic_info where mod(id,?)=? limit ?, ?
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:212)
at org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:249)
at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:296)
at com.taobao.trade.jstorm.activityhb.dal.dao.uac.impl.SellerDynamicInfoDAOImpl.queryBatchForAllByMod(SellerDynamicInfoDAOImpl.java:36)
at com.taobao.trade.jstorm.activityhb.MyTest.scanTableAndStoreTairTest(MyTest.java:225)
at com.taobao.trade.jstorm.activityhb.MyTest.main(MyTest.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:121)
Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in dal/sqlmap/sqlmap-uac-seller-dynamic-info-mysql.xml.
--- The error occurred while applying a parameter map.
--- Check the SellerDynamicInfo.queryBatchForAllByMod-InlineParameterMap.
--- Check the statement (query failed).
--- Cause: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: 分析sql错误,错误的sql是: select seller_id as sellerId, new_time as newTime, last_sell_time as lastSellTime from seller_dynamic_info where mod(id,?)=? limit ?, ?
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:204)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java:139)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:567)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:541)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118)
at org.springframework.orm.ibatis.SqlMapClientTemplate$3.doInSqlMapClient(SqlMapClientTemplate.java:298)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:209)
... 10 more
Caused by: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: 分析sql错误,错误的sql是: select seller_id as sellerId, new_time as newTime, last_sell_time as lastSellTime from seller_dynamic_info where mod(id,?)=? limit ?, ?
at com.taobao.tddl.parser.SQLParserImp.nestedParseSql(SQLParserImp.java:103)
at com.taobao.tddl.parser.SQLParserImp.parseSQL(SQLParserImp.java:68)
at com.taobao.tddl.parser.SQLParserImp.parse(SQLParserImp.java:311)
at com.taobao.tddl.client.handler.SqlParseHandler.parse(SqlParseHandler.java:59)
at com.taobao.tddl.client.handler.SqlParseHandler.handleDown(SqlParseHandler.java:37)
at com.taobao.tddl.client.pipeline.DefaultPipeline$DefaultHandlerContext.handleDown(DefaultPipeline.java:449)
at com.taobao.tddl.client.pipeline.DefaultPipeline$DefaultHandlerContext.flowNext(DefaultPipeline.java:445)
at com.taobao.tddl.client.pipeline.DefaultPipeline$DefaultHandlerContext.handleDown(DefaultPipeline.java:450)
at com.taobao.tddl.client.pipeline.DefaultPipeline.startFlow(DefaultPipeline.java:97)
at com.taobao.tddl.client.pipeline.bootstrap.PipelineBootstrap.bootstrap0(PipelineBootstrap.java:273)
at com.taobao.tddl.client.pipeline.bootstrap.PipelineBootstrap.bootstrap0(PipelineBootstrap.java:208)
at com.taobao.tddl.client.pipeline.bootstrap.PipelineBootstrap.bootstrap(PipelineBootstrap.java:60)
at com.taobao.tddl.client.jdbc.TStatementImp.buildSqlExecutionContextUsePipeline(TStatementImp.java:717)
at com.taobao.tddl.client.jdbc.TStatementImp.executeQueryInternal(TStatementImp.java:581)
at com.taobao.tddl.client.jdbc.TPreparedStatementImp.executeQuery(TPreparedStatementImp.java:94)
at com.taobao.tddl.client.jdbc.TPreparedStatementImp.execute(TPreparedStatementImp.java:80)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:185)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteQuery(MappedStatement.java:221)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:189)
... 16 more
Caused by: java.util.concurrent.ExecutionException: java.lang.RuntimeException: 分析sql错误,错误的sql是: select seller_id as sellerId, new_time as newTime, last_sell_time as lastSellTime from seller_dynamic_info where mod(id,?)=? limit ?, ?
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
425783 [2014-12-05 21:27:51] [] DEBUG md5.MD5 - [hash]d8a431a990d9cbf90a1c9840bf18862e
at java.util.concurrent.FutureTask.get(FutureTask.java:83)
at com.taobao.tddl.parser.SQLParserImp.nestedParseSql(SQLParserImp.java:101)
... 34 more
Caused by: java.lang.RuntimeException: 分析sql错误,错误的sql是: select seller_id as sellerId, new_time as newTime, last_sell_time as lastSellTime from seller_dynamic_info where mod(id,?)=? limit ?, ?
at com.taobao.tddl.parser.SQLParserImp.getDMLCommonObject(SQLParserImp.java:181)
at com.taobao.tddl.parser.SQLParserImp.access$000(SQLParserImp.java:50)
at com.taobao.tddl.parser.SQLParserImp$1.call(SQLParserImp.java:82)
at com.taobao.tddl.parser.SQLParserImp$1.call(SQLParserImp.java:80)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at com.taobao.tddl.parser.SQLParserImp.nestedParseSql(SQLParserImp.java:96)
... 34 more