`

addBatch()用法(jdbc事务控制)

    博客分类:
  • Java
阅读更多

addBatch()用法
  查看文章  
PreparedStatement.addbatch()的使用
Statement和PreparedStatement的区别就不多废话了,直接说PreparedStatement最重要的addbatch()结构的使用.

1.建立链接  
  Connection connection =getConnection();

2.不自动 Commit
connection.setAutoCommit(false); 

3.预编译SQL语句,只编译一回哦,效率高啊
PreparedStatement statement = connection.prepareStatement("INSERT INTO TABLEX VALUES(?, ?)"); 

//记录1
statement.setInt(1, 1);
statement.setString(2, "Cujo");
statement.addBatch(); 

//记录2
statement.setInt(1, 2);
statement.setString(2, "Fred");
statement.addBatch(); 

//记录3
statement.setInt(1, 3);
statement.setString(2, "Mark");
statement.addBatch(); 

//批量执行上面3条语句.
int [] counts = statement.executeBatch(); 

//Commit it  到(DB)里面






**

已安装了microsoft 驱动程序

jdk1.4; win2000 server;  MS sql2000;

*/

import java.sql.*;


class sql
{

public static void main(String[] agrs)
{
Connection  cn=null;
Statement stmt=null;
String     sql=null;

try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch(ClassNotFoundException ex)
{
System.out.println("Not find  the  Driver!");
}

try
{
String urls="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=webroot";//webroot 库名.TALBE 是表名;
String user="sa";
String password="password";
cn= DriverManager.getConnection(urls,user,password);

//stmt=cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
stmt=cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

sql="select  top 10 * from  TABLE1";
ResultSet rs= stmt.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getString(2)+"       "+rs.getString(3));

}

rs.first();
System.out.print(rs.getRow()+"       ");
System.out.println(rs.getString(2)+" 1      "+rs.getString(3));

rs.last();
System.out.print(rs.getRow()+"       ");
System.out.println(rs.getString(2)+" 2      "+rs.getString(3));

rs.previous();
System.out.print(rs.getRow()+"       ");
System.out.println(rs.getString(2)+" 3      "+rs.getString(3));

rs.next();
System.out.print(rs.getRow()+"       ");
System.out.println(rs.getString(2)+" 4      "+rs.getString(3));

rs.absolute(2);
System.out.print(rs.getRow()+"       ");
System.out.println(rs.getString(2)+" 5      "+rs.getString(3));

/*
rs.afterLast();
System.out.print(rs.getRow()+"       ");
System.out.println(rs.getString(2)+"       "+rs.getString(3));
System.out.print(rs.isAfterLast());

rs.beforeFirst();
System.out.print(rs.getRow()+"       ");
System.out.println(rs.getString(2)+"       "+rs.getString(3));
*/

String sql1="update  TABLE1 set 题目=?   where id=? ";
PreparedStatement stmt1 = cn.prepareStatement(sql1);
String stat  = new String("盛夏话足部保健");
String stat1 = UnicodeToGB(stat);//解决中文问题
stmt1.setString(1,stat1);
stmt1.setInt(2,3423);
stmt1.executeUpdate();
cn.commit();

//System.out.println(stat1);
//System.exit(0);

//cn.setAutoCommit(false);

stmt.addBatch("update  TABLE1 set 题目="盛夏话足部保健1"   where id="3407"");
stmt.addBatch("update  TABLE1 set 题目="夏季预防中暑膳食1" where id="3408"");
stmt.addBatch("INSERT INTO  TABLE1  VALUES("11","12","13","","")");
stmt.addBatch("INSERT INTO  TABLE1  VALUES("12","12","13","","")");
stmt.addBatch("INSERT INTO  TABLE1  VALUES("13","12","13","","")");
stmt.addBatch("INSERT INTO  TABLE1  VALUES("14","12","13","","")");
stmt.addBatch("INSERT INTO  TABLE1  VALUES("15","12","13","","")");
stmt.addBatch("INSERT INTO  TABLE1  VALUES("16","12","13","","")");
stmt.addBatch("INSERT INTO  TABLE1  VALUES("17","12","13","","")");
stmt.addBatch("INSERT INTO  TABLE1  VALUES("18","12","13","","")");

int [] updateCounts=stmt.executeBatch();
cn.commit();



stmt.close();
cn.close();
}
catch(SQLException e)
{
System.out.println("The SQLException error!");
}

}
/*
*/

public static String UnicodeToGB(String strIn){
   byte[] b;
   String strOut = null;
   if(strIn == null || (strIn.trim()).equals(""))
   return strIn;
   try{
       b = strIn.getBytes("GBK");
       strOut = new String(b,"ISO8859_1");
   }
   catch(Exception e){
       System.out.println("unicodeToGB exception : " + e.getMessage() + "\n");
   }
   return strOut;
}
/*
*/
}

分享到:
评论

相关推荐

    jdbc事务及分页

    ### JDBC事务管理与分页策略详解 在Java开发中,JDBC(Java Database Connectivity)作为连接数据库的标准API,被广泛应用于数据操作。...在实际开发中,应根据具体需求和数据规模选择最合适的事务控制和分页方法。

    JDBC使用MySQL处理大数据+事务控制管理.txt

    ### JDBC使用MySQL处理大数据及事务控制管理 #### 一、批处理提高性能 在处理大量数据时,直接使用传统的逐条记录方式与数据库进行交互往往会导致性能低下。这是因为每次执行SQL语句时都需要与数据库建立连接、...

    JdbcTemplate的事务控制.docx

    当使用`JdbcTemplate`结合Spring框架时,可以采用与原生JDBC事务控制类似的方法,但在Spring环境中进行管理。以下是一个使用Druid数据库连接池的示例代码: ```java @RequestMapping("/druidData1") public String ...

    Oracle JDBC事务的优化.pdf

    Oracle JDBC事务的优化是数据库管理中的重要环节,其目的是提高数据库系统的性能和效率。Oracle数据库作为广泛使用的关系型数据库系统,其性能优化涉及到多个层面,包括共享内存管理、数据库段的优化、数据组织方式...

    jdbc连接各数据库及事务处理

    二、JDBC事务处理 在数据库操作中,事务处理确保一组操作要么全部成功,要么全部失败,保证数据的一致性。在JDBC中,我们可以通过以下方式管理事务: 1. 设置自动提交为false:默认情况下,JDBC的每个数据库操作都...

    jdbc jar包

    JDBC支持事务控制,包括`Connection`对象的`setAutoCommit()`方法(设置自动提交)以及`commit()`和`rollback()`方法(提交和回滚事务)。这对于保证数据一致性至关重要。 **5. JDBC优化技巧** - 使用...

    sql server2000 jdbc

    要优化JDBC性能,可以考虑预编译SQL语句(使用`PreparedStatement`)、批量操作(使用`addBatch()`和`executeBatch()`)、使用最新的JDBC驱动,以及合理设置连接池参数。 以上就是关于"sql server2000 jdbc"的相关...

    JDBC教程

    JDBC事务处理 JDBC支持事务管理,可以控制一组数据库操作作为一个原子单元。通过设置Connection的自动提交属性(`conn.setAutoCommit(false)`)来开启手动事务,并使用`commit()`和`rollback()`方法提交或回滚事务...

    jdbc使用参考手册

    - **事务控制**:`conn.setAutoCommit(false)`禁用自动提交,使用`conn.commit()`和`conn.rollback()`手动管理事务。 ### 6.批处理 - **批处理命令**:`addBatch()`添加SQL到批处理,`executeBatch()`执行整个...

    数据库jdbc

    1. 事务控制:JDBC提供了对数据库事务的管理,包括开始事务、提交事务和回滚事务。`Connection`对象的`setAutoCommit(false)`可以关闭自动提交,手动控制事务边界。 2. 回滚与提交:当所有操作完成后,使用`commit...

    Jdbc实用教程

    四、JDBC事务管理 JDBC支持两种事务隔离级别:自动提交和手动提交。默认情况下,每个SQL语句都会在一个单独的事务中执行(自动提交)。若需手动控制事务,可以调用`Connection.setAutoCommit(false)`来开启事务,并...

    Mysql JDBC驱动 .zip_MYSQL_jdbc mysql_mysql jdbc_mysql jdbc driver_

    - **事务管理**:JDBC支持事务,可以控制一组操作的原子性,确保数据的一致性。 - **批处理**:通过PreparedStatement的addBatch()方法,可以批量执行SQL语句,提高效率。 - **连接池**:在实际应用中,为了性能和...

    jdbc教程_jdbc教程

    5. **事务管理**:JDBC提供了开始、提交和回滚事务的方法,以确保数据的一致性。 ### JDBC基本步骤 1. **加载驱动**:`Class.forName()`方法加载JDBC驱动。 2. **建立连接**:`DriverManager.getConnection()`创建...

    JDBC公共操作方法代码

    JDBC还支持事务处理,可以通过Connection的`setAutoCommit(false)`关闭自动提交,然后手动调用`commit()`或`rollback()`来控制事务的提交和回滚。 此外,JDBC的批处理功能允许一次性发送多条SQL语句,提高效率。...

    sqljdbc_4.0

    8. 事务管理:JDBC支持事务处理,通过调用`Connection`对象的`setAutoCommit(false)`禁用自动提交,然后手动调用`commit()`或`rollback()`来控制事务边界。 9. 性能优化:使用批处理(`addBatch()`和`executeBatch...

    JDBC MSSQL2008 驱动

    **正文** JDBC(Java Database ...综上,JDBC MSSQL2008驱动是Java连接SQL Server 2008数据库的基础,理解和掌握其使用方法对于Java开发者来说至关重要,这能有效提升开发效率,保证应用程序与数据库的稳定交互。

    达内jdbc学习笔记

    此外,**JDBC事务管理**也是重要的一部分。在JDBC中,可以通过Connection对象的`setAutoCommit()`方法关闭自动提交,然后通过`commit()`和`rollback()`方法手动控制事务的提交和回滚。 在实际开发中,为了提高性能...

    MySQL_4_JDBC高级操作和事务1

    **JDBC事务操作** 在Java中,你可以使用Connection对象的`setAutoCommit()`方法来开启或关闭自动提交。关闭自动提交后,你需要手动调用`commit()`来提交事务,或者在发生错误时调用`rollback()`来回滚事务。例如: ...

    JDBC数据库连接JAR包

    4. **JDBC事务管理** - 自动提交:默认情况下,JDBC每条SQL语句都会开启一个事务并自动提交。可通过`Connection.setAutoCommit(false)`关闭自动提交,手动控制事务。 - 显式事务:通过`Connection.commit()`和`...

    一头扎进JDBC视频教程源码

    这个"一头扎进JDBC视频教程源码"系列涵盖了从基础到高级的JDBC使用方法,帮助学习者深入理解和掌握JDBC技术。以下是根据提供的源码文件名推测的各个章节知识点: 1. **第一讲:JDBC基础** - JDBC API简介:了解...

Global site tag (gtag.js) - Google Analytics