`
大象06
  • 浏览: 119354 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JDBC里面如何运用事务实现执行多条SQL语句

    博客分类:
  • Java
阅读更多

数据库是SQL SERVER 2005

编译环境是Eclipse

我要用bulk insert往数据库表里面插数据,可能会插入多张表,所以我在程序里面是将这些插入写在一个sql语句里面一起执行,如下:

BULK Insert [db].[dbo].[table1] 
From "D:\cnas\csvsms\file\1\***.csv"
WITH (
FIRSTROW = 4,
FORMATFILE ='d:/***.fmt')

BULK Insert [db].[dbo].[table2] 
From "D:\cnas\csvsms\file\1\****.csv"
WITH (
FIRSTROW = 4,
FORMATFILE ='d:/****.fmt')

 最开始执行的时候插入第二个的时候会报错,但是报错之后前面插得数据也成功插入了,这样很明显是不行的,所以我想到了事务,于是解决方案如下:

执行的时候加入如下代码:

try {
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		url = GlobalsConfig.getDBUrl();
		user = GlobalsConfig.getDBUser();
		password = GlobalsConfig.getDBPwd();
		PreparedStatement ps = null;
		Connection conn = null;
		try {
			conn = DriverManager.getConnection(url, user, password);
			conn.setAutoCommit(false);
			conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
			ps = conn.prepareStatement(cmd);
			ps.executeUpdate();
			conn.commit();
		} catch (SQLException e) {
			try {
				conn.rollback();
			} catch (Exception ex) {
				ex.printStackTrace();
			}
			e.printStackTrace();
		}

 把sql传入,执行,就OK了,成功在JDBC里面添加事务。

分享到:
评论

相关推荐

    Jmeter中JDBC request多条SQL语句使用.docx

    本文将重点介绍如何在JMeter中使用JDBC Request来执行多条SQL语句,包括查询与更新操作,并针对不同类型的SQL语句提供最佳实践。 #### 二、JDBC Request概述 JDBC Request是JMeter提供的一个用于执行数据库操作的...

    Spring 中jdbcTemplate 实现执行多条sql语句示例

    本文将详细解释如何使用JdbcTemplate来执行多条SQL语句,以及其在事务管理中的作用。 首先,JdbcTemplate的`batchUpdate`方法是用于批量执行SQL语句的,如示例所示。在上述代码中,`batchUpdate`接收一个SQL语句的...

    java批量执行SQL

    批量执行SQL的基本思想是通过一次网络往返,发送多条SQL语句到数据库服务器,从而减少网络开销,提高执行效率。在Java中,主要通过`PreparedStatement`的`addBatch()`方法将多条SQL语句添加到批处理中,再调用`...

    sqljdbc.jar

    5. **批处理**:使用`BatchUpdateException`批量执行多条SQL语句,提高效率。 6. **游标**:通过设置不同的游标类型,控制数据的读取方式,如只进、可滚动等。 7. **元数据查询**:获取数据库、表、列等的元数据信息...

    SQL语句SQL语句.zip

    在JavaWeb开发中,SQL语句常用于后端与数据库交互,例如通过JDBC(Java Database Connectivity)来执行SQL查询。开发者需要熟悉SQL,以便有效地与数据库进行通信,存储和检索数据,从而实现Web应用程序的功能。在...

    打印JdbcTemplate执行sql

    当在一个事务中执行多条SQL语句时,如果其中一个失败,所有操作都将回滚,确保数据的一致性。你可以通过`JdbcTemplate`的`execute`方法执行一组SQL操作,并在需要时捕获并处理异常。 5. **性能优化**:通过日志,...

    JSP 多条SQL语句同时执行的方法

    在Java Web开发中,JSP(JavaServer Pages)经常用于创建动态网页,而SQL(Structured Query ...总的来说,理解和掌握JSP中的多条SQL语句执行以及事务管理,对于构建健壮、高效且数据一致性的Web应用具有重要意义。

    sqljdbc.sqljdbc4.rar

    5. **批处理**:对于多条相似的SQL语句,可以使用批处理功能提高执行效率。 6. **游标支持**:可以使用游标在结果集中前后移动,方便处理大量数据。 7. **数据库元数据**:通过`DatabaseMetaData`接口获取数据库的...

    sql server2008 jdbc驱动

    - 使用批处理(`addBatch()`和`executeBatch()`)来发送多条SQL语句,可以减少网络通信开销。 - 设置合适的连接池,如C3P0或HikariCP,可以有效管理数据库连接,提高性能。 - 使用`PreparedStatement`而不是`...

    java十分经典的jdbc增删改查程序,含sql语句

    当需要执行多条相似的SQL语句时,可以使用`addBatch()`和`executeBatch()`方法实现批处理,提高效率。 8. **预编译的PreparedStatement优点**: - 性能优化:SQL语句预编译后,数据库只需解析一次。 - 安全性:...

    sqljdbc和测试jdbc连接类

    - `void testTransaction()`: 演示如何在事务中执行多条SQL语句。 4. **JDBC最佳实践** - 使用连接池:为了提高性能和资源利用率,应该使用连接池,如C3P0、HikariCP或Apache DBCP。 - 预编译SQL:使用`...

    sqljdbc4-4.0.jar

    1. **批处理**:可以一次性发送多条SQL语句,提高数据处理效率。 2. **游标**:允许开发者按需读取结果集,而不是一次性加载所有数据,节省内存资源。 3. **XML支持**:可以直接在SQL Server中处理XML类型的数据。 4...

    sqljdbc4.jar

    -批处理:使用PreparedStatement的`addBatch()`和`executeBatch()`方法,可以批量执行多条SQL语句,提高效率。 - 数据源管理:在企业级应用中,通常使用DataSource接口管理数据库连接,以实现连接池的功能,提高...

    jdbc sqlserver2014

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

    SQL SERVER JDBC 驱动

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

    JAVA的SQL帮助类,帮助快速使用SQL语句更新,删除,查询数据

    7. **性能优化**:可能包含批处理(Batch Processing)功能,允许一次性执行多条SQL语句,提升效率。 在实际项目中,开发者只需关注SQL语句本身,无需关心数据库连接的创建和关闭,这极大地提高了开发效率。例如,...

    sqljdbc_4.0

    9. 性能优化:使用批处理(`addBatch()`和`executeBatch()`)来发送多条SQL语句,可以提高性能。另外,考虑使用连接池(如C3P0、HikariCP)管理数据库连接,减少连接创建和销毁的开销。 10. 错误处理:处理JDBC异常...

    sqljdbc_9.4\chs.zip

    6. **批处理**:使用PreparedStatement的`addBatch()`方法添加多条SQL语句到批处理队列,然后通过`executeBatch()`一次性执行,提高效率。 7. **连接池**:在实际应用中,通常会配合连接池技术,如Apache的DBCP或C3...

    SQL SERVER 2008 JDBC 驱动

    批处理可以提高执行多条SQL语句的效率;存储过程可以封装复杂的业务逻辑,提高性能;而大对象处理则方便了对图像、文本等大数据量的管理。 在实际开发中,为了优化性能和提高安全性,建议使用PreparedStatement而...

    sqljdbc_1.2

    8. **性能优化**:使用批处理(`addBatch()`和`executeBatch()`)可以一次性执行多条SQL,提高效率。同时,关闭不再需要的资源(如`ResultSet`、`Statement`和`Connection`)是良好的编程实践,以避免内存泄漏。 9....

Global site tag (gtag.js) - Google Analytics