[英]error while executing a sql query (spring)
this is my GetLastTrade where i want to get a int result for another method int stockdata count is being called here: 这是我的GetLastTrade,我要在其中调用另一个int stockdata计数方法的int结果:
public StockData GetLastTrade(String UserName, String SymbolName, StockData stockData)
{
System.out.println("error in GetLastTrade " + SymbolName + "username==" + UserName + "TRANSDATE ==" + stockData.getTRANSDATE() + "OPENPRICE==" + stockData.getOPENPRICE());
try
{
System.out.println("GetLastTrade done==" + stockData.getTRANSDATE());
return stockDataService.GetLastTrade(UserName, SymbolName, stockData);
}
catch(Exception e)
{
System.out.println("stockDataService.GetLastTrade error" +e);
e.printStackTrace();
}
return stockData;
}
this is int countStockData in my code : 这是我的代码中的int countStockData:
public int countStockData(String UserName, String SymbolName, StockData stockData)
{
String transdateforquery = stockData.getTRANSDATE();
try
{
return template.queryForInt(
"SELECT COUNT(TRANSDATE) FROM stockdata WHERE transdate= ? AND symbolname = ?",
rowMapper,transdateforquery, SymbolName);
}
catch (TransientDataAccessResourceException e)
{
System.out.println("TransientDataAccessResourceExc eption====");
// TODO Auto-generated catch block
e.printStackTrace();
return 0;
}
}
IM getting this error: IM收到此错误:
TransientDataAccessResourceException====
org.springframework.dao.TransientDataAccessResourc eException: PreparedStatementCallback; SQL [SELECT COUNT(TRANSDATE) FROM stockdata WHERE transdate= ? AND symbolname = ?]; Invalid argument value: java.io.NotSerializableException; nested exception is java.sql.SQLException: Invalid argument value: java.io.NotSerializableException
at org.springframework.jdbc.support.SQLStateSQLExcept ionTranslator.doTranslate(SQLStateSQLExceptionTran slator.java:107)
at org.springframework.jdbc.support.AbstractFallbackS QLExceptionTranslator.translate(AbstractFallbackSQ LExceptionTranslator.java:72)
at org.springframework.jdbc.support.AbstractFallbackS QLExceptionTranslator.translate(AbstractFallbackSQ LExceptionTranslator.java:80)
at org.springframework.jdbc.support.AbstractFallbackS QLExceptionTranslator.translate(AbstractFallbackSQ LExceptionTranslator.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute (JdbcTemplate.java:602)
at org.springframework.jdbc.core.JdbcTemplate.query(J dbcTemplate.java:636)
at org.springframework.jdbc.core.JdbcTemplate.query(J dbcTemplate.java:665)
at org.springframework.jdbc.core.JdbcTemplate.query(J dbcTemplate.java:673)
at org.springframework.jdbc.core.JdbcTemplate.queryFo rObject(JdbcTemplate.java:716)
at org.springframework.jdbc.core.JdbcTemplate.queryFo rObject(JdbcTemplate.java:727)
at org.springframework.jdbc.core.JdbcTemplate.queryFo rInt(JdbcTemplate.java:754)
at org.springframework.jdbc.core.simple.SimpleJdbcTem plate.queryForInt(SimpleJdbcTemplate.java:121)
at com.ib.client.mts.backend.DAO.StockDataService.cou ntStockData(StockDataService.java:362)
at com.ib.client.mts.backend.BusinessService.TradingB usinessService.GetStockDataCount(TradingBusinessSe rvice.java:262)
at com.ib.client.mts.backend.BusinessService.MtsRuleE ngineService.AnalyseRow(MtsRuleEngineService.java: 205)
at com.ib.client.mts.backend.DAO.UploadDAO.csvinput(U ploadDAO.java:175)
at com.ib.client.mts.backend.DAO.FileUploadService.do Upload(FileUploadService.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknow n Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Un known Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at flex.messaging.services.remoting.adapters.JavaAdap ter.invoke(JavaAdapter.java:421)
at flex.messaging.services.RemotingService.serviceMes sage(RemotingService.java:183)
at flex.messaging.MessageBroker.routeMessageToService (MessageBroker.java:1503)
at flex.messaging.endpoints.AbstractEndpoint.serviceM essage(AbstractEndpoint.java:884)
at flex.messaging.endpoints.AbstractEndpoint$$FastCla ssByCGLIB$$1a3ef066.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy. java:191)
at org.springframework.aop.framework.Cglib2AopProxy$C glibMethodInvocation.invokeJoinpoint(Cglib2AopProx y.java:692)
at org.springframework.aop.framework.ReflectiveMethod Invocation.proceed(ReflectiveMethodInvocation.java :150)
at org.springframework.aop.framework.adapter.ThrowsAd viceInterceptor.invoke(ThrowsAdviceInterceptor.jav a:124)
at org.springframework.aop.framework.ReflectiveMethod Invocation.proceed(ReflectiveMethodInvocation.java :172)
at org.springframework.aop.framework.Cglib2AopProxy$F ixedChainStaticTargetInterceptor.intercept(Cglib2A opProxy.java:576)
at flex.messaging.endpoints.AMFEndpoint$$EnhancerByCG LIB$$3cc0debb.serviceMessage(<generated>)
at flex.messaging.endpoints.amf.MessageBrokerFilter.i nvoke(MessageBrokerFilter.java:121)
at flex.messaging.endpoints.amf.LegacyFilter.invoke(L egacyFilter.java:158)
at flex.messaging.endpoints.amf.SessionFilter.invoke( SessionFilter.java:44)
at flex.messaging.endpoints.amf.BatchProcessFilter.in voke(BatchProcessFilter.java:67)
at flex.messaging.endpoints.amf.SerializationFilter.i nvoke(SerializationFilter.java:146)
at org.springframework.security.ui.SpringSecurityFilt er.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy $VirtualFilterChain.doFilter(FilterChainProxy.java :390)
at org.springframework.security.util.FilterChainProxy .doFilter(FilterChainProxy.java:175)
at org.springframework.web.filter.DelegatingFilterPro xy.invokeDelegate(DelegatingFilterProxy.java:238)
25more
org.apache.coyote.http11.Http11AprProtocol$Http11C onnectionHandler.process(Http11AprProtocol.java:56 5)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run( AprEndpoint.java:1509)
at java.lang.Thread.run(Unknown Source)
whats the problem in the above code and what will be the new code.I m new to spring so facing problems 上面代码中的问题是什么,什么是新代码。
I am guessing that your rowMapper (whatever that is since it is not shown) is not serializable. 我猜想您的rowMapper(无论是什么,因为未显示)都无法序列化。 I am also guessing that it is not required for the method call since it only has t variables defined in the statement.
我还猜测方法调用不是必需的,因为它在语句中仅定义了t个变量。
FYI: Your naming conventions are all over the place getTRANSDATE(), caps for some method names and variables. 仅供参考:您的命名约定到处都是getTRANSDATE(),其中一些方法名称和变量的上限。 You aren't even consistent with the bad practices you are using.
您甚至与所使用的不良做法不一致。
It looks like transdateforquery
is defined as a string. 看起来
transdateforquery
被定义为字符串。 If the database column transdate
is defined as a date, this probably won't work. 如果将数据库列的
transdate
定义为日期,则可能无法使用。 Try converting your transdateforquery
into a java.sql.Date
and pass that into your query. 尝试将您的
transdateforquery
转换为java.sql.Date
并将其传递到查询中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.