java序列化相关问题 查询数据库的时候出现这个异常,我将查询到的结果封装到对象中。

org.springframework.dao.TransientDataAccessResourceException:PreparedStatementCallbac... 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)
展开
 我来答
百度网友fd65f0d
推荐于2018-03-02 · TA获得超过828个赞
知道小有建树答主
回答量:2064
采纳率:20%
帮助的人:522万
展开全部
首先,解释系列化知识:
Java序列化(系列化)机制可以被写入一个字节流的一个实例对象的状态信息,因此它可以透过插座,或持久存储到数据库,或者文件系统,在需要时,根据在字节流中的信息来重构一个相同的对象。序列化机制在Java技术具有广泛的应用,EJB,RMI等作为依据。

实现类java.io.ObjectOutputStream中java.io.ObjectInputStream中的类的序列化机制。序列(序列化)对象,实例化一个ObjectOutputStream对象,然后调用writeObject()方法;反序列化(反序列化)时,ObjectInputStream的对象实例,然后调用readObject()方法。

高于你的错误在于一个或几个没有序列化的数据,导致没有办法创建一个输出流,导致发生java.io.NotSerializableException。

序列化的原因,我的猜测是,因为你的数据里面存在一个基于对象的数据,但对象不实现系列化。例如:如果你有一个地址字段,这个字段是一个类地址说明地址,这可能是全省的财产,城市,街道,等,或一些getter和setter方法,如果这个类没有实现系列化,通常这的问题。

毕竟,没有看到该程序,我猜,检查程序或进一步讨论的问题。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zuchunlei521
2012-05-17 · TA获得超过298个赞
知道小有建树答主
回答量:105
采纳率:100%
帮助的人:87.9万
展开全部
你传给sql拼接的参数是从一个对象里获得的,而这个参数类型是不可序列化的。造成出错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-05-16
展开全部
抛的SQL异常,要看代码才知道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1136170886
2012-05-16 · 超过12用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:16.7万
展开全部
sql 报的是无效的参数值,你看看参数是不是有问题,或者有没有值,类型什么的对不对
更多追问追答
追问
参数类型都和数据库是一致的,没问题
追答
你看看在传入sql中时,那个参数是否有值
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangke826817
2012-05-16
知道答主
回答量:82
采纳率:0%
帮助的人:29.4万
展开全部
抛的SQL异常,要看代码才知道
更多追问追答
追问
sql语句没问题 我直接用sql语句就可以查询到结果
追答
那你是不是程序执行后接口没有关呢,代码发来看看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式