0 0

java 序列化问题 ,操作数据库的时候出现这个异常,我将出现到的结果封装到对象中5

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)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1824)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.sql.SQLException: Invalid argument value: java.io.NotSerializableException
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.PreparedStatement.setSerializableObject(PreparedStatement.java:3185)
at com.mysql.jdbc.PreparedStatement.setObject(PreparedStatement.java:2838)
at org.apache.commons.dbcp.DelegatingPreparedStatement.setObject(DelegatingPreparedStatement.java:166)
at org.springframework.jdbc.core.StatementCreatorUtils.setValue(StatementCreatorUtils.java:351)
at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValueInternal(StatementCreatorUtils.java:216)
at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValue(StatementCreatorUtils.java:144)
at org.springframework.jdbc.core.ArgPreparedStatementSetter.doSetValue(ArgPreparedStatementSetter.java:65)
at org.springframework.jdbc.core.ArgPreparedStatementSetter.setValues(ArgPreparedStatementSetter.java:46)
at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:641)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:586)
... 44 more

问题补充:
niuzai 写道
亲,检查一把你的gentie对象中是否引用了未实现序列话接口的对象?

gentie对象中没其他对象,不过这个对象已经序列化

问题补充:
wanghuanqiu 写道
传给sql的参数有问题,你把执行的sql打印出来,看看有什么问题

参数是没问题的,我都检查了的
 
2012年5月16日 15:26

2个答案 按时间排序 按投票排序

0 0

亲,检查一把你的gentie对象中是否引用了未实现序列话接口的对象?

2012年5月17日 09:44
0 0

传给sql的参数有问题,你把执行的sql打印出来,看看有什么问题

2012年5月17日 09:43

相关推荐

    java学生管理系统(没用数据库)

    这个管理系统的核心概念主要围绕着Java编程语言的文件操作、数据序列化和简单的数据结构。 1. **Java文件操作**:在Java中,可以使用`java.io`包中的类进行文件的读写操作。例如,`File`类用于文件的创建、删除和...

    使用对象流模拟对象数据库 java

    在Java编程中,对象流是用于序列化和反序列化对象的关键技术,它允许我们将对象的状态存储到文件或网络中,以便在需要时重新加载和恢复。对象数据库则是存储和检索Java对象的系统,但它们通常需要专门的软件支持。在...

    android 数据库操作封装类 继承可用

    7. **数据封装与反序列化**: 可能会包含一些方法,将数据对象转化为SQLite能识别的格式(如字符串、JSON),以及将查询结果反序列化为Java对象。 在实际项目中,为了适应特定需求,你可以直接继承这个`...

    对象关系映射,并持久化到数据库的开源组件

    对象关系映射,并持久化到数据库的开源组件,是对JDBC 的封装,主要负责java 对象的持久化.。 对象序列化适应临时的少量的对象备份。 对象持久化和关系型数据库联合在一起,适应大量的对象持久存储

    精通Java--JDK、数据库系统开发、Web开发基础与实例

    面向对象是Java的核心特性,本书将详细讲解面向对象软件设计方法,包括类与对象、封装、继承、多态等概念。通过实例解析,读者可以学会如何创建和使用类,理解类与对象的关系,以及如何利用继承和多态性来提高代码的...

    在JAVA中封装JSON数据

    总结来说,Java中封装JSON数据主要涉及JSON对象的创建、序列化和反序列化,以及与Struts框架的集成。通过熟练掌握这些技能,你可以有效地处理Web应用中的数据交互。在实际开发中,还需要关注性能优化、错误处理以及...

    数据库基本介绍以及在java中的操作.docx

    在Java中,与数据库交互主要依赖于JDBC(JAVA DATABASE CONNECTION),这是一个由SUN公司提出的接口集,用于规范Java应用程序如何与各种数据库进行通信。JDBC提供了标准化的API,使得开发人员不必直接了解具体的...

    java自动生成bean 根据数据库表及字段(.net 2.0版本)

    在Java开发中,Bean类是常见的一种数据封装对象,它通常代表了数据库中的一个表或者一个实体对象。在大型项目中,手动创建大量的Bean类既耗时又容易出错。因此,利用自动化工具生成Bean类变得尤为重要。"java自动...

    echarts后台封装(java)

    4. **JSON序列化**:将构建好的Option对象序列化为JSON字符串,这是与前端进行数据交换的标准格式。Java提供了多种JSON库,如Jackson、Gson或Fastjson,可以方便地完成这一任务。 5. **HTTP响应**:将JSON字符串...

    本Java project实现了使用JDBC驱动连接mysql数据库,创建了DBConnection类(封装了连接和关

    项目还展示了如何将查询结果封装进Java实体类(Entity Beans),这是一个常见的做法,旨在将数据库的行数据映射为Java对象,便于开发者管理和操作数据。实体类通常与数据库的表结构相对应,每个对象的属性对应表的列...

    基于memcached client for java的cache封装

    通过以上介绍,我们可以看出基于Java的Memcached客户端封装是一个涉及到连接管理、操作接口设计、异常处理、缓存策略等多个方面的复杂任务。正确地封装和使用Memcached客户端,可以显著提升Java应用的性能,减少对...

    java自己写了一个带有缓存的序列,简单的分页封装(都没有人给过评论)

    标题中的“java自己写了一个带有缓存的序列,简单的分页封装”暗示了这是一个关于Java编程的实践案例,其中涉及到缓存技术和分页处理。在IT行业中,缓存是提高系统性能的重要手段,而分页则常用于处理大量数据的显示...

    java日期和查询数据库生成XML文件类

    在Java编程中,日期处理和数据操作是两个非常重要的领域,尤其当涉及到数据持久化时,如生成XML文件。XML是一种广泛使用的结构化数据交换格式,适用于存储和传输数据。以下是一些关于“java日期和查询数据库生成XML...

    我和JAVA数据库操作的那些事儿(2)

    在“我和JAVA数据库操作的那些事儿(2)”这篇博文中,作者分享了实际操作的经验和技巧,涵盖了数据库连接、SQL语句执行、结果集处理以及对象模型的构建。 首先,JDBC是Java平台的标准接口,它允许Java应用程序与...

    深入浅析Java Object Serialization与 Hadoop 序列化

    在反序列化时,需要将一个 InputStream 封装在 ObjectInputStream 内,然后调用 readObject(),得到的结果是一个 Object 对象,需要进行转型得到最后所需的对象。 四、Java 序列化的实现 下面是一个简单的 Java ...

    java各种常用的工具类封装 源码

    比如,`JsonUtil` 可能封装了将Java对象转换为JSON字符串,以及将JSON字符串反序列化为Java对象的方法。 6. **JDBC**: Java Database Connectivity 是Java访问数据库的标准接口,`JdbcUtil` 类常用于封装数据库连接...

    基于Java-JDBC访问Oracle9i对象关系数据库的一种实现方法.pdf

    在Java中实现对Oracle9i的访问时,可能遇到的问题包括数据类型转换、对象序列化与反序列化、事务管理、错误处理和连接池的使用等。例如,对象类型数据在数据库和Java对象之间传递时,可能需要序列化为字节流,然后...

    自动根据数据库生成JAVA BEAN和DAO

    在IT行业中,数据库是存储和管理数据的核心组件,而Java Bean和DAO(Data Access Object)则是Java编程中用于数据操作的重要概念。本知识点主要聚焦于如何自动根据数据库中的表结构生成对应的Java Bean类和DAO类,以...

    猜拳游戏(Java程序设计中的面向对象的编程思想和swing以及数据库的应用)

    可以使用序列化技术将游戏对象转化为字节流,存入文件或数据库,需要时再反序列化恢复。 9. **异常处理**:在程序设计中,错误和异常是无法避免的。良好的异常处理机制能确保游戏在遇到问题时不会突然崩溃,而是给...

    Java+数据库笔试和学习整理

    在“Java+数据库笔试和学习整理”这个主题中,我们可以深入探讨两个主要的IT领域:Java编程语言和数据库管理。这些文件很可能包含了丰富的面试题目、学习笔记和实践问题,旨在帮助用户提升在这两个领域的知识和技能...

Global site tag (gtag.js) - Google Analytics