`

iBatis删除大批量记录时 出错

 
阅读更多


Last packet sent to the server was 1 ms ago.; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:

--- The error occurred in sqlmap/VisitImpl.xml.
--- The error occurred while applying a parameter map.
--- Check the VisitDaoImpl.deleteByShopid-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: socket closed

STACKTRACE:

java.net.SocketException: socket closed
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
        at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
        at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
        at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1994)
        at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2411)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2916)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
        at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:882)
        at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.logicalcobwebs.proxool.ProxyStatement.invoke(ProxyStatement.java:100)
        at org.logicalcobwebs.proxool.ProxyStatement.intercept(ProxyStatement.java:57)
        at $java.sql.Statement$$EnhancerByProxool$$e51738e7.execute(<generated>)
        at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:80)
        at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteUpdate(MappedStatement.java:216)
        at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:94)
        at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:457)
        at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.delete(SqlMapExecutorDelegate.java:480)
        at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.delete(SqlMapSessionImpl.java:98)
        at org.springframework.orm.ibatis.SqlMapClientTemplate$11.doInSqlMapClient(SqlMapClientTemplate.java:438)
        at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:209)
        at org.springframework.orm.ibatis.SqlMapClientTemplate.delete(SqlMapClientTemplate.java:436)
        at com.testapp.stats.dao.impl.VisitRecordDAOImpl.deleteByShopid(VisitRecordDAOImpl.java:47)
        at com.testapp.stats.service.CheckShopService.deleteVisit(CheckShopService.java:45)
        at com.testapp.stats.filter.QuartzSyncJob.ClearShopGarbage(QuartzSyncJob.java:162)
        at com.testapp.stats.filter.QuartzSyncJob.executeInternal(QuartzSyncJob.java:122)
        at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)


** END NESTED EXCEPTION **

 

 

因为自己做本地测试时,从来不出错,都能正常运行。baidu到其它人的分析http://bbs.csdn.net/topics/390051943

 

我认为  回复于: 2012-05-16 12:15:06 
也许是查询太慢导致timeout了,socket就close了。纯属猜测 

 

这个结果应该的原因所在。

 

也许是查询太慢导致timeout了,socket就close了。纯属猜测
分享到:
评论

相关推荐

    ibatis教程_删除指定id的单个对象.rar

    Ibatis,作为一个轻量级的持久层框架,为Java开发者提供了方便的SQL映射功能,使得在处理数据库操作时更加灵活高效。本教程主要聚焦于如何使用Ibatis来删除指定ID的单个对象,这涉及到SQL动态执行、Mapper接口和XML...

    ibatis出错调试心得

    - **日志记录**:启用iBatis的日志功能可以帮助快速定位问题。可以通过配置文件或编程方式设置日志级别。 - **断言检查**:在编写SQL映射文件时,可以利用断言来进行简单的检查,比如确保所有的参数都已正确配置。 -...

    ibatis总结 ibatis ibatis ibatis ibatis

    Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...

    ibatis demo,ibatis例子,ibatis示例

    8. **插件支持**:Ibatis允许开发者编写自定义插件,通过拦截器模式对SqlSession或Executor的行为进行扩展,如性能监控、日志记录等。 在ibatis demo中,我们可能还会看到如何配置Spring与Ibatis的集成,以便利用...

    ibatis入门

    - **删除(Delete)**: 使用 `delete` 标签定义删除语句,同样通过参数确定要删除的记录。调用 `delete` 方法执行删除操作。 4. **多条件查询** Ibatis 支持基于多个条件的复杂查询。在 `select` 标签中,你可以...

    ibatis源码,ibatis源码 ibatis源码 ibatis源码

    iBatis,一个优秀的Java持久层框架,以其轻量级、灵活的特性在众多ORM(Object-Relational Mapping)框架中独树一帜。iBatis的核心在于它的SQL映射机制,它将数据库操作与业务逻辑解耦,使得开发者可以自由地编写SQL...

    ibatis教程,ibatis帮助文档

    SQL Maps是iBATIS的核心,通过XML文件定义了Java对象与SQL语句之间的映射,大大减少了数据库操作的代码量。这种映射方式使得SQL语句的管理更加灵活,也更易于理解和维护。 二、iBATIS与传统JDBC的比较 iBATIS与JDBC...

    ibatis应对批量update

    当涉及到的数据量较大时,采用逐条更新的方式将大大降低系统的性能。具体表现在每次更新操作都需要建立数据库连接、执行SQL语句、关闭连接等步骤,这些操作会消耗大量的系统资源。 #### ibatis批量Update解决方案 ...

    ibatis_with_memcached

    Ibatis,一个轻量级的Java持久层框架,通过与缓存系统结合,能够显著提升数据读取速度。本项目"ibatis_with_memcached"就是关于如何将Ibatis与Memcached集成,实现高效的数据库缓存策略的实例。 Ibatis是一个基于...

    IBatis .NET框架实例

    IBatis(现在称为MyBatis)是一个轻量级的持久层框架,它允许开发者将SQL语句直接嵌入到应用程序代码中,从而避免了传统的ADO.NET模式带来的复杂性。通过使用XML或注解来配置和映射SQL,IBatis使得数据访问更加灵活...

    ibatis基础知识详解

    与Hibernate等全自动化ORM框架相比,Ibatis更轻量级,更注重SQL的自由度,适合对SQL有高度定制需求的项目。而Hibernate等框架则更强调对象关系映射,简化了对象与数据库表之间的转换。 总结来说,Ibatis是一个实用...

    Ibatis入门例子,Ibatis教程

    随着对Ibatis的深入理解和实践,你会发现它在处理数据库操作时的灵活性和强大性。在实际项目中,结合Spring框架使用Ibatis,可以构建出更加健壮、高效的后端系统。因此,无论你是初学者还是有经验的开发者,掌握...

    ibatis入门与ibatis迭代的用法

    iBatis,一款轻量级的Java持久层框架,是MyBatis的前身,由美国华人开发团队开发。它提供了一个SQL、Java和XML的映射框架,将SQL语句与Java代码分离,使得开发者可以更加灵活地处理数据库操作,避免了JDBC的繁琐和...

    ibatis api,ibatis文档,ibatis说明文档

    3. 动态SQL:Ibatis的动态SQL功能允许在运行时构建SQL语句,极大地提高了灵活性。 4. 参数映射和结果映射:详细解释了如何处理输入参数和返回结果,包括自动类型匹配、级联映射等。 5. 事务管理:介绍如何使用...

    Ibatis

    作为一个轻量级的框架,Ibatis 提供了灵活的映射机制,使得 XML 或注解方式的 SQL 映射成为可能,大大简化了数据访问层(DAL)的开发工作。 **1. Ibatis 的核心概念** 1.1 SQL 映射文件:Ibatis 的核心是 SQL 映射...

    iBATIS-DAO-2.3.4.726.rar_com.ibatis.dao_iBATIS dao 2_iBatis DAO_

    这些SQL Maps通常以XML文件的形式存在,允许开发者直接在代码中调用预定义的SQL操作,如查询、插入、更新和删除。通过这种方式,iBATIS实现了SQL与业务逻辑的解耦,提高了代码的可读性和可维护性。 在源码中,`...

    iBatis开发指南和一个iBatis实例

    iBatis是一个轻量级的Java持久层框架,它提供了SQL映射框架,将SQL语句与Java代码分离,使得数据库访问更为灵活和可控。在本压缩包中,你将找到一系列关于iBatis的学习资源,包括PDF文档、实例代码等,这些都是深入...

    Ibatis3手册 Ibatis3参考手册

    与完全面向对象的ORM框架(如Hibernate)不同,Ibatis3提供了一种更加轻量级、灵活的方式来进行数据访问。这种特性使得Ibatis3非常适合于那些需要精细化控制SQL查询的大规模项目。 ### 二、Ibatis3的核心概念 ####...

    ibatis

    Ibatis 的设计目标是简化开发工作,减少JDBC代码量,提高开发效率,并且在数据库操作上保持灵活度,使得业务逻辑和数据访问层之间的接口清晰明了。 Ibatis 的核心组件包括SqlMapConfig.xml配置文件、Mapper XML ...

    ibatis2指南及ibatis包

    ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南ibatis2指南

Global site tag (gtag.js) - Google Analytics