0 0

通过调用executeBatch将数据插入SQLSERVER报错10

[14-12-30 9:30:26:430 CST] 00000046 SystemErr     R at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:121)
[14-12-30 9:30:26:430 CST] 00000046 SystemErr     R at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:322)
[14-12-30 9:30:26:430 CST] 00000046 SystemErr     R at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:212)
[14-12-30 9:30:26:430 CST] 00000046 SystemErr     R at cn.com.tobosoft.tmcs.common.biz.persist.impl.CommonIbatisDAO.insert(CommonIbatisDAO.java:114)
[14-12-30 9:30:26:430 CST] 00000046 SystemErr     R ... 12 more
[14-12-30 9:30:26:430 CST] 00000046 SystemErr     R Caused by: java.sql.SQLException: [IBM][SQLServer JDBC Driver][SQLServer]The statement has been terminated.
at com.ibm.websphere.jdbc.sqlserverbase.ddb9.a(Unknown Source)
at com.ibm.websphere.jdbc.sqlserverbase.ddb9.b(Unknown Source)
at com.ibm.websphere.jdbc.sqlserverbase.ddb9.a(Unknown Source)
at com.ibm.websphere.jdbc.sqlserver.tds.ddr.o(Unknown Source)
at com.ibm.websphere.jdbc.sqlserver.tds.ddr.a(Unknown Source)
at com.ibm.websphere.jdbc.sqlserver.tds.ddq.a(Unknown Source)
at com.ibm.websphere.jdbc.sqlserver.tds.ddr.a(Unknown Source)
at com.ibm.websphere.jdbc.sqlserver.ddj.k(Unknown Source)
at com.ibm.websphere.jdbc.sqlserverbase.ddde.executeBatch(Unknown Source)
at com.ibm.websphere.jdbcx.sqlserverbase.ddq.executeBatch(Unknown Source)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteBatch(WSJdbcPreparedStatement.java:964)
at com.ibm.ws.rsadapter.jdbc.WSJdbcStatement.executeBatch(WSJdbcStatement.java:705)
at com.ibatis.sqlmap.engine.execution.SqlExecutor$Batch.executeBatch(SqlExecutor.java:608)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeBatch(SqlExecutor.java:119)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.executeBatch(SqlMapExecutorDelegate.java:807)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.executeBatch(SqlMapSessionImpl.java:184)
at cn.com.tobosoft.tmcs.common.biz.persist.impl.CommonIbatisDAO$1.doInSqlMapClient(CommonIbatisDAO.java:121)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:209)
at cn.com.tobosoft.tmcs.common.biz.persist.impl.CommonIbatisDAO.insert(CommonIbatisDAO.java:114)
at cn.com.tobosoft.tmcs.fin.biz.service.impl.FinanceServiceImpl.generateGlData(FinanceServiceImpl.java:690)
at cn.com.tobosoft.tmcs.commission.biz.service.impl.compute.ExportGlfileServiceImpl.exportGlData(ExportGlfileServiceImpl.java:74)
at cn.com.tobosoft.tmcs.commission.biz.task.KeyJob.executeSchedule(KeyJob.java:185)
at cn.com.tobosoft.tmcs.commission.biz.task.KeyJob.schedule(KeyJob.java:330)
at sun.reflect.GeneratedMethodAccessor1055.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:619)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:275)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:272)
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)

CommonIbatisDAO的insert方法
public void insert(final String sqlStmID, final List<?> list)
throws DAOException {
try {
logger.debug("sqlStmID:" + sqlStmID);
logger.debug("param:" + ObjectInfo.toString(list));
getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor)
throws SQLException {
executor.startBatch();
for (int iter = 0, count = list.size(); iter < count; iter++) {
executor.insert(sqlStmID, list.get(iter));
}
executor.executeBatch();
return null;
}
});

} catch (Exception e) {
throw new DAOException(e.getMessage(), null, e);
}
}
2014年12月30日 11:19

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

0 0

特殊字符,没有转义吧?

2015年1月04日 10:51

相关推荐

    sqlserver驱动包:sqljdbc4.jar

    通过调用`Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")`,我们可以加载并注册这个驱动,然后使用`DriverManager.getConnection()`创建数据库连接。 2. **URL配置**:连接SQL Server通常需要提供...

    sql server2008 jdbc驱动

    要在Java应用中使用SQL Server 2008 JDBC驱动,首先需要将对应的jar文件(如mssql-jdbc-*.jar)添加到项目的类路径中。接着,在Java代码中加载驱动,通常使用`Class.forName()`方法指定驱动类名(如`...

    适用SQL Server 2016版本的数据库加载驱动包——sqljdbc42.jar

    在IT行业中,数据库是存储和管理数据的核心工具,而SQL Server 2016是由Microsoft开发的一款企业级的关系型数据库管理系统。它提供了高效的数据存储、查询、分析和安全功能,广泛应用于各种业务系统。在Java应用程序...

    sql server2000 jdbc

    SQL Server 2000 JDBC 是Java编程语言与Microsoft SQL Server 2000数据库进行交互的...以上就是关于"sql server2000 jdbc"的相关知识点,这些内容将帮助Java开发者成功地在应用程序中与SQL Server 2000数据库进行交互。

    基于jdk8的SQLSERVER 连接驱动.rar

    下面将详细讨论SQL Server JDBC驱动以及如何在JDK 8环境下进行配置和使用。 SQL Server JDBC驱动是由Microsoft提供的,它实现了Java Database Connectivity (JDBC) API,允许Java应用程序与SQL Server数据库进行...

    sql server jdbc 驱动包

    4. **执行SQL语句**:通过`Statement`对象执行SQL语句,如查询、插入、更新或删除数据: ```java ResultSet rs = stmt.executeQuery("SELECT * FROM myTable"); ``` 5. **处理结果集**:`ResultSet`对象包含了...

    SQL Server 数据库连接包

    包括存储过程调用、参数化查询、元数据获取等功能,使得SQL Server的高级特性也能在Java应用中充分利用。 10. **兼容性与版本**: SQL Server数据库连接包通常会随着SQL Server的新版本更新,以保持与最新特性的...

    Microsoft SQL Server JDBC Driver

    3. **批量更新**:通过PreparedStatement的addBatch()和executeBatch()方法,可以高效地执行大量SQL插入、更新或删除操作。 4. **并发和性能优化**:针对多线程环境进行了优化,提供了更好的并发性和响应速度。 5....

    sqlserver 2000数据库驱动

    这个驱动程序允许Java程序通过JDBC(Java Database Connectivity)接口与SQL Server进行交互,执行SQL查询、数据操作以及事务处理。在Java环境中,驱动通常以.jar文件的形式提供,方便开发者在项目中引用。 JDBC是...

    SQL SERVER JDBC 驱动

    6. **批处理**:使用PreparedStatement的`addBatch()`方法添加多条SQL语句到批处理队列,然后通过`executeBatch()`一次性执行,提高批量操作的效率。 7. **连接池**:为了提高性能和资源利用率,通常会在应用服务器...

    Microsoft SQL Server 2000 Driver for JDBC

    总结起来,Microsoft SQL Server 2000 Driver for JDBC是Java开发者与SQL Server 2000数据库进行交互的重要工具,通过其提供的API,开发者能够轻松完成数据库的连接、查询、数据操作等一系列任务,有效提升开发效率...

    jdbc sqlserver2014

    6. **批处理**:通过`Statement`的`addBatch()`和`executeBatch()`方法,可以批量执行多条SQL语句,提高效率。 7. **连接池**:在实际应用中,通常会使用连接池(如C3P0、HikariCP或Apache DBCP)来管理和复用...

    MS SQL Server的jdbc驱动

    通过`Connection`对象,我们可以创建`Statement`或`PreparedStatement`来执行SQL语句,如查询、插入、更新和删除数据。`ResultSet`用于存储查询结果,可以遍历获取每一行数据。 五、性能优化 1. **批处理**:使用`...

    java通过jdbc访问sqlserver数据库

    Java通过JDBC(Java Database Connectivity)访问SQL Server数据库是一种常见的数据存取技术。JDBC是Java平台中的一个标准API,它允许Java程序与各种类型的数据库进行交互,包括SQL Server。以下是一些关于如何使用...

    用Java实现SQL_Server到Oracle数据迁移

    - 执行SQL语句:使用`Statement`或`PreparedStatement`对象执行SQL,如SELECT语句来获取SQL Server中的数据,INSERT语句将数据插入Oracle数据库。 - 错误处理:捕获并处理可能出现的SQLException。 4. **数据抽取...

    SQL SERVER JDBC 3.0

    在本文中,我们将深入探讨SQL Server JDBC驱动3.0版本的主要特点、功能、安装与使用方法,以及它如何帮助开发者构建高效的数据驱动应用。 1. **SQL Server JDBC驱动概述** - SQL Server JDBC驱动是Microsoft官方...

    JDBC 连接SQLSERVER 所需包

    4. **执行SQL语句**:一旦建立了连接,就可以执行SQL查询、更新、插入和删除操作。使用`Statement`或`PreparedStatement`对象,例如: - `Statement stmt = conn.createStatement();` - `ResultSet rs = stmt....

    java实现oracle和sqlserver数据库转换(包含大数据)

    同时,也需要准备SQL语句在SQL Server中创建表结构和插入数据。 4. **批处理操作**:处理大数据时,批处理是提高效率的关键。通过`Statement.addBatch()`和`Statement.executeBatch()`方法,可以一次性提交多条SQL...

    SqlServer 2005 jdbc

    SqlServer 2005 JDBC 是微软公司提供的用于Java应用程序与SQL Server 2005数据库之间进行数据交互的驱动程序。JDBC(Java Database Connectivity)是Java平台中用于访问数据库的标准API,它允许Java开发者编写能够...

    SQLserver2005最新JDBC驱动

    SQL Server 2005是微软公司开发的一款关系型数据库管理系统,它在企业级应用中广泛使用,提供了高效的数据存储、管理和分析能力。而JDBC(Java Database Connectivity)则是Java平台上的一个标准接口,用于连接Java...

Global site tag (gtag.js) - Google Analytics