Jdbc批处理一点异同

同样的代码:

public class TestBatch {
  public static void main(String[] args) throws SQLException, ClassNotFoundException {
	//Class.forName("oracle.jdbc.driver.OracleDriver");
	//Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","guojje","guojje");
	  
	 Class.forName("com.mysql.jdbc.Driver");
     Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","");
     String sql = "insert into book (kind, name) values (?,?)";
     PreparedStatement pstmt = conn.prepareStatement(sql);
     pstmt.setString(1, "java");
     pstmt.setString(2, "jjjj");
     pstmt.addBatch();   
     pstmt.setString(1, "ccc");
     pstmt.setString(2, "dddd");
     pstmt.addBatch();   
     //添加一次静态SQL
     pstmt.addBatch("update book set kind = ‘JAVA‘ where kind=‘java‘");
     //批量执行预定义SQL
     pstmt.executeBatch(); 
}
}

MySQL是通过,对于Oracle则会报不支持特性, 原因在于addBatch动态sql之后,

不能再addBatch静态sql. 已此记录。

时间: 2024-10-10 05:30:08

Jdbc批处理一点异同的相关文章

Java JDBC批处理插入数据操作

在此笔记里,我们将看到我们如何可以使用像Statement和PreparedStatement JDBC API来批量在任何数据库中插入数据.此外,我们将努力探索一些场景,如在内存不足时正常运行,以及如何优化批量操作. 首先,使用Java JDBC基本的API批量插入数据到数据库中. Simple Batch - 简单批处理    我把它叫做简单批处理.要求很简单,执行批量插入列表,而不是为每个INSERT语句每次提交数据库,我们将使用JDBC批处理操作和优化性能. 想想一下下面的代码: Bad

JDBC批处理executeBatch

JDBC运行SQL声明,有两个处理接口,一PreparedStatement,Statement,一般程序JDBC有多少仍然比较PreparedStatement 只要运行批处理,PreparedStatement少一点Statement ps = conn.prepareStatement(sql); for(int i = 0;i<10;i++){ ps.setString(1,"1"); //PreparedStatement批处理方式一 ps.addBatch(); }

JDBC批处理Select语句

注:为了更好理解本文,请结合原文阅读 在上一篇文章中提到了PreparedStatement的局限性:PreparedStatement不允许一个占位符(?)设置多个值,本文试图从其它角度来解决该问题. 在网络上开销最昂贵的资源就是客户端与服务器往返的请求与响应,JDBC中类似的一种情况就是对数据库的调用,如果你在做数据插入.更新.删除操作,可以使用executeBatch()方法减少数据库调用次数,如: 1 2 3 4 5 Statement pstmt = conn.createStatem

Java基础系列13:JDBC批处理简介

关于JDBC的批处理,这是JDBC2.0以后兴起的概念.所谓批处理就是可以一次性执行多条SQL命令,比如:插入.删除等.如果想要实现批处理操作,则需要使用PreparedStatement的addBatch()方法将一条SQL语句添加到批处理中,接着使用executeBatch()方法来执行前面添加的全部命令.示例代码如下: package javase.jdbc; import java.sql.Connection; import java.sql.PreparedStatement; im

JDBC批处理数据

JDBC提供了数据库batch处理的能力,在数据大批量操作(新增.删除等)的情况下可以大幅度提升系统的性能. // 关闭自动执行 con.setAutoCommit(false); Statement stmt = con.createStatement(); 禁用了自动执行模式,从而在调用 Statement.executeBatch() 时可以防止 JDBC 执行事务处理.禁用自动执行使得应用程序能够在发生错误及批处理中的某些命令不能执行时决定是否执行事务处理.因此,当进行批处理更新时,通常

jdbc批处理

有的时候,我们需要一次性插入很多的数据或者一次性更新.删除很多的数据,那么为了提高效率,我们不妨使用JDBC的批处理来完成. 看下面的小例子. package testBatch; import java.sql.*; public class testBatch { public static void main(String[] args) throws SQLException { Connection con=null; Statement stmt=null; try { Class.

spring jdbc 批处理插入主健重复的数据

1.有事务:当调用spring jdbc 的批处理的时候,在实现层加入事物,只要有插入异常的数据,整个批处理操作都会回滚.事务保证操作的原子性. 2.无事务:当没有事务的时候,批处理插入数据的时候,若主健重复则会直接抛出异常,后面没有主键冲突的依然不会插入,因为当抛出异常的时候,下一次插入操作就不会执行. 3.当想要插入的数据是增量的 有两种方法:第一种删除原来的数据,插入新的数据.第二种:插入数据主健重复的时候做更新操作 insert into   on dupulicate key upda

批处理一点资料

批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统称批处理命令. 小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程. 参考资料:http://club.topsage.com/thread-597557-1-1.html 有事没事可以练习了玩玩~~

Java学习——关于JDBC的一点分享

1.下载驱动程序并部署    我们在对数据库进行操作之前要先连接到数据库(这里以Intellij Idea连接MySQL为例). (1).新建一个Idea工程,下载数据库连接驱动程序,并放到Idea的工程文件夹下. (2).加载JDBC驱动程序 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),可以用forName(String  className)方法实现. 2.连接到数据库并获取数据库连接对象 (1)JDBC连接所需的参数(user,password,url)