`
- 浏览:
90896 次
- 性别:
- 来自:
北京
-
package JDBC;

import java.sql.BatchUpdateException;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.Time;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;

/** *//**
*
* @author oakertree
*
*/

public class TestTransaction
{

public static void main(String[] args)
{
Connection con = null;
Statement stmt = null;
// PreparedStatement stmt = null;

try
{
Class.forName("com.mysql.jdbc.Driver");
// new com.mysql.jdbc.Driver();
con = DriverManager.getConnection("jdbc:mysql://localhost:3307/test", "root", "admini");
con.setAutoCommit(false);
stmt = con.createStatement();
stmt.addBatch("INSERT INTO time VALUES ( NOW(), NOW(), NOW())");
stmt.addBatch("INSERT INTO time VALUES ( NOW(), NOW(), NOW())");
stmt.addBatch("INSERT INTO time VALUES ( NOW(), NOW(), NOW())");
stmt.addBatch("INSERT INTO time VALUES ( NOW(), NOW(), NOW())");
stmt.addBatch("INSERT INTO time VALUES ( NOW(), NOW(), NOW())");
stmt.addBatch("INSERT INTO time VALUES ( NOW(), NOW(), NOW())");
stmt.executeBatch();
con.commit();
con.setAutoCommit(true);
stmt.close();

/**//*
System.out.println(Date.valueOf("2004-02-19"));
System.out.println(Time.valueOf("14:29:32"));
System.out.println(Timestamp.valueOf("2008-12-01 12:25:32"));
stmt = con.prepareStatement("INSERT INTO time VALUES (?, ?, ?)");
stmt.setDate(1, Date.valueOf("2004-12-02"));
stmt.setTime(2, Time.valueOf("14:02:32"));
stmt.setTimestamp(3, Timestamp.valueOf("2004-12-01 12:25:32"));
stmt.addBatch();
stmt.setDate(1, Date.valueOf("2005-12-02"));
stmt.setTime(2, Time.valueOf("15:02:32"));
stmt.setTimestamp(3, Timestamp.valueOf("2005-12-01 12:25:32"));
stmt.addBatch();
stmt.setDate(1, Date.valueOf("2006-12-02"));
stmt.setTime(2, Time.valueOf("16:02:32"));
stmt.setTimestamp(3, Timestamp.valueOf("2006-12-01 12:25:32"));
stmt.addBatch();
stmt.setDate(1, Date.valueOf("2007-12-02"));
stmt.setTime(2, Time.valueOf("17:02:32"));
stmt.setTimestamp(3, Timestamp.valueOf("2007-12-01 12:25:32"));
stmt.addBatch();
stmt.executeBatch();
stmt.close();
*/

} catch (ClassNotFoundException e)
{
e.printStackTrace();

} catch (BatchUpdateException e)
{
e.printStackTrace();

} catch (SQLException e)
{
e.printStackTrace();

try
{

if(con != null)
{
con.rollback();
con.setAutoCommit(true);
}

} catch(SQLException ie)
{
ie.printStackTrace();
}

} finally
{

try
{

if(stmt != null)
{
stmt.close();
stmt = null;
}

if(con != null)
{
con.close();
con = null;
}

} catch (SQLException e)
{
e.printStackTrace();
}
}
}
}

/**//*
+------------+----------+---------------------+
| date | time | datetime |
+------------+----------+---------------------+
| 2007-10-16 | 01:01:17 | 2007-10-16 01:01:17 |
| 2007-10-17 | 01:02:22 | 2006-05-12 00:00:00 |
| 2007-12-19 | 00:13:04 | 2007-12-19 00:13:04 |
| 2007-12-22 | 14:13:48 | 2007-12-22 14:13:48 |
| 2007-12-22 | 14:14:52 | 2007-12-22 14:14:52 |
| 2007-12-22 | 14:14:52 | 2007-12-22 14:14:52 |
| 2007-12-22 | 14:14:52 | 2007-12-22 14:14:52 |
| 2007-12-22 | 14:14:52 | 2007-12-22 14:14:52 |
| 2007-12-22 | 14:14:52 | 2007-12-22 14:14:52 |
| 2007-12-22 | 14:14:52 | 2007-12-22 14:14:52 |
| 2004-12-02 | 14:02:32 | 2004-12-01 12:25:32 |
| 2005-12-02 | 15:02:32 | 2005-12-01 12:25:32 |
| 2006-12-02 | 16:02:32 | 2006-12-01 12:25:32 |
| 2007-12-02 | 17:02:32 | 2007-12-01 12:25:32 |
+------------+----------+---------------------+
*/
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
标题中的“Oracle数据库自动恢复数据库批处理”是指在Oracle数据库管理系统中,通过预先设定的脚本或批处理程序实现数据库的自动恢复。这通常涉及到数据库的备份、日志管理、故障检测以及数据恢复等关键环节,是...
SQL-Sever数据库根据运行模式将事务分为4种类型:自动提交事务、显示事务、隐式事务和批处理级事务。1. 自动提交事务:是指每条单独的语句都是一个事务;2. 显式事务:是指每个事务均以BEGIN TRANSACTION语句显式...
1. 创建Connection对象,设置自动提交为false,以便控制事务。 ```java Connection conn = DriverManager.getConnection(url, user, password); conn.setAutoCommit(false); ``` 2. 创建Statement或...
在SQL语句中,批处理指的是将多个SQL命令写入一个文本文件,然后一次性提交给数据库执行。这种方式适用于创建数据库结构、导入数据、执行数据更新或清理等任务。例如,`sql.sql`文件可能包含了创建表、插入数据、...
为了启用批处理,你需要调用`setAutoCommit(false)`来禁用自动提交,因为默认情况下,每个SQL语句都会被单独提交。 2. **添加批处理命令**:你可以使用`addBatch()`方法将一个或多个SQL语句(或者参数集)添加到...
在批处理中,一次性执行大量操作可能导致大量的回滚段使用和长时间的锁定,因此通常会设置批量提交,即执行一定数量的SQL语句后才提交一次事务。例如,使用`WHENEVER OSERROR EXIT`和`WHENEVER SQLERROR EXIT ...
2. **Hibernate批处理设置**: Hibernate通过`hibernate.jdbc.batch_size`配置属性来设定批处理大小,例如设置为20表示每次提交20个SQL语句。默认值通常较小,需要根据实际需求进行调整。 3. **Flush模式**: ...
- 在SQL语句中,可以通过使用事务来实现批处理。例如,在开始处理前开启一个事务,然后执行一系列的操作,最后通过`COMMIT`命令提交更改或通过`ROLLBACK`命令撤销所有更改。 - 使用存储过程也可以实现批处理功能,...
必要时,使用Connection对象的`setAutoCommit(false)`关闭自动提交,并在批处理完成后手动提交或回滚。 3. **异常处理**:在执行批处理时,务必捕获并处理SQLException,避免因单个错误导致整个批处理失败。 批处理...
在Java数据库连接(JDBC)中,增删改查(CRUD)操作是与数据库交互的基础,事务处理、批处理和预编译SQL语句则是提高效率和保证数据一致性的关键技术。以下是对这些概念的详细说明: 1. **JDBC增删改查(CRUD)**:...
在事务提交前,所有数据操作都是临时的。 6. 事务编写注意事项:编写事务时需要注意事务锁定数据的机制,以及事务日志的创建和管理。未提交的事务中所有操作都是临时的,一旦事务回滚这些操作不会对数据库产生持久...
接下来,可以执行多个SQL语句并添加到批处理中,最后调用`executeBatch()`方法来一次性执行所有SQL语句。如果这些操作成功,则通过`commit()`方法将更改保存到数据库;如果发生异常,则调用`rollback()`方法撤销所有...
自动事务模式下,SQL Server会在每个语句成功执行后自动提交,错误则回滚。在批处理中,如果一个语句出错,整个批处理都不会执行。 事务处理语句包括`BEGIN TRANSACTION`(开始事务)、`COMMIT TRANSACTION`(提交...
- **持久性(Durability)**:一旦事务提交,其结果就是永久的,即使系统崩溃也不会丢失。 在JDBC中,你可以通过以下方式控制事务: - 开启事务:`conn.setAutoCommit(false);` - 提交事务:`conn.commit();` - ...
- **JDBC批处理**:通过设置批处理边界,一次性提交多条SQL语句,减少数据库交互次数。 - **Java 8 Stream API**:处理大量数据时,Stream API提供了一种高效且易读的编程方式。 6. **Batch.java文件可能的内容**...
- **持久性(Durability)**:一旦事务提交,其对数据库的改变将是永久的,即使系统出现故障也不会丢失。 #### 二、事务的不同模式 在 SQL Server 中,事务有不同的运行模式: 1. **自动提交事务**:默认情况下,...
一旦SQL语句执行成功,数据库系统会自动提交这些更改,而无需程序员进行额外的代码处理。这种方式简单易用,但可能无法满足复杂的业务逻辑需求,因为每个操作都立即生效,没有机会进行回滚或批处理。 其次,**显式...
4. 设置合适的批处理大小:根据具体场景调整批处理语句的数量。 总结,JDBC是Java开发中的重要组成部分,掌握其核心概念和使用技巧对进行数据库操作至关重要。通过不断实践和优化,可以编写出高效、稳定的数据库...
如果执行了DDL(Data Definition Language)语句,那么在DDL语句执行前后都会自动提交事务。 - SQL Server中的行为类似,但是用户可以使用GO命令来标记批处理之间的边界,GO不是T-SQL语句,它是一个批处理终止符,...
运行模式上,有自动提交事务(每个SQL语句自动构成一个事务),显示事务(通过BEGIN/COMMIT/ROLLBACK显式控制),隐式事务(前一个事务结束后自动开始新事务),以及批处理事务(在MARS会话中,多条SQL语句作为一个...