org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback; SQL [select * from gentie t where t.topic_id=?]; Invalid argument value: java.io.NotSerializableException; nested exception is java.sql.SQLException: Invalid argument value: java.io.NotSerializableException
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:107)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:602)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:636)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:665)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:673)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:713)
at org.springframework.jdbc.core.JdbcTemplate.queryForList(JdbcTemplate.java:796)
at org.springframework.jdbc.core.simple.SimpleJdbcTemplate.queryForList(SimpleJdbcTemplate.java:235)
at com.bishe.servce.impl.TieZiImpl.getGenTie(TieZiImpl.java:101)
at com.bishe.control.TieZiAction.getTie(TieZiAction.java:112)
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 org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:174)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:421)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:409)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at com.bishe.control.SessionFilter.doFilter(SessionFilter.java:52)
参数类型都和数据库是一致的,没问题
追答你看看在传入sql中时,那个参数是否有值
追问这个值确实是有的
追答类型不对,你看你写的是OBject类型的
追问不是类型不对哦 因为我有的表可以查询到结果,我都是这样的操作
追答我才你的id应该是int类型的吧,我用int类型的数组试一下
追问我用int 类型和string 类型都试过 我目前怀疑是spring 封装的JdbcTemplate查询mysql数据库时,queryForList 会出现这个异常
追答呵呵, 好好看看代码吧。我感觉应该不会犯这种错误吧
追问这个不是代码问题 是spring封装的方法queryForList不支持查询mysql数据库
追答行,那好吧。你知道问题所在就行了
追问因为我用queryForPage就没异常
本回答被提问者采纳sql语句没问题 我直接用sql语句就可以查询到结果
追答那你是不是程序执行后接口没有关呢,代码发来看看
追问sql 语句String sql = "select * from gentie t where t.topic_id=?";
Object args = new Object[]{id};
jdbcTemplate.queryForList(sql, new GenTieRowMapper(), args)这里就是查询数据库,GenTieRowMapper 就是实现RowMapper接口将查询到的结果封装到对象中。