`

JDBC的批处理操作三种方式

阅读更多

1.JDBC批处理应用场合:(待解决)

 

 

2.JDBC批处理操作方式:
SQL批处理是JDBC性能优化的重要武器,经本人研究总结,批处理的用法有三种。
 
package lavasoft.jdbctest;

import lavasoft.common.DBToolkit;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;

/**
* JDBC的批量操作三种方式
*
* @author leizhimin 2009-12-4 14:42:11
*/

public class BatchExeSQLTest {

        public static void main(String[] args) {
                exeBatchStaticSQL();
        }

        /**
         * 批量执行预定义模式的SQL
         */

        public static void exeBatchParparedSQL() {
                Connection conn = null;
                try {
                        conn = DBToolkit.getConnection();
                        String sql = "insert into testdb.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.executeBatch();
                } catch (SQLException e) {
                        e.printStackTrace();
                } finally {
                        DBToolkit.closeConnection(conn);
                }
        }

        /**
         * 批量执行混合模式的SQL、有预定义的,还有静态的
         */

        public static void exeBatchMixedSQL() {
                Connection conn = null;
                try {
                        conn = DBToolkit.getConnection();
                        String sql = "insert into testdb.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 testdb.book set kind = 'JAVA' where kind='java'");
                        //批量执行预定义SQL
                        pstmt.executeBatch();
                } catch (SQLException e) {
                        e.printStackTrace();
                } finally {
                        DBToolkit.closeConnection(conn);
                }
        }

        /**
         * 执行批量静态的SQL
         */

        public static void exeBatchStaticSQL() {
                Connection conn = null;
                try {
                        conn = DBToolkit.getConnection();
                        Statement stmt = conn.createStatement();
                        //连续添加多条静态SQL
                        stmt.addBatch("insert into testdb.book (kind, name) values ('java', 'java in aciton')");
                        stmt.addBatch("insert into testdb.book (kind, name) values ('c', 'c in aciton')");
                        stmt.addBatch("delete from testdb.book where kind ='C#'");
                        stmt.addBatch("update testdb.book set kind = 'JAVA' where kind='java'");
//                        stmt.addBatch("select count(*) from testdb.book");                //批量执行不支持Select语句
                        //执行批量执行
                        stmt.executeBatch();
                } catch (SQLException e) {
                        e.printStackTrace();
                } finally {
                        DBToolkit.closeConnection(conn);
                }
        }
}
 
注意:JDBC的批处理不能加入select语句,否则会抛异常:
java.sql.BatchUpdateException: Can not issue SELECT via executeUpdate().
  at com.mysql.jdbc.StatementImpl.executeBatch(StatementImpl.java:1007)
 

本文出自 “熔 岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/238651

分享到:
评论

相关推荐

    JDBC数据库操作值MySQL批处理操作

    JDBC基本操作,及批处理操作

    JDBC批处理数据

    对jdbc的操作进行说明,避免出现大数据读取时的报错

    JDBC详解(连接操作数据库、处理大数据、批处理)

    详细介绍JDBC的连接操作数据库、处理大数据、批处理使用操作 Sun公司为了简化数据库开发,定义了一套JDBC接口,这套接口由数据库厂商去实现,这样,开发人员只需要学习JDBC接口, 并通过JDBC加载具体的驱动,就可以...

    【动力节点】Java经典教程_JDBC视频教程

    Java教程中阐述了接口在开发中的真正作用,JDBC规范制定的背景,JDBC编程六部曲,JDBC事务,JDBC批处理,SQL注入,行级锁等,是学习JDBC最好的Java教程。JDBC 资源太大,传百度网盘了,链接在附件中,有需要的同学...

    MySQL_4_JDBC高级操作和事务1

    第十二章 JDBC批处理操作批量处理允许您将相关的SQL语句分组到批处理中,并通过对数据库的一次调用提交它们。当您一次向数据库发送多个SQL语句时,可以减少连接

    jdbc基础(概念、操作步骤、连接方式等)

    jdbc基础,包含基本概念、数据库连接操作、JDBC常用接口、与oracle/mysql/db2创建连接、Statement、PreparedStatement会话使用、Clob/Blob大文件处理、批处理操作等。

    jdbc连接数据库的方式2

    我们可以使用addBatch()和executeBatch()方法选择标准的JDBC批处理,或者通过利用PreparedStatement对象的setExecuteBatch()方法和标准的executeUpdate()方法选择速度更快的Oracle专有的方法。要使用Oracle专有的...

    自学JDBC技术

    JDBC 的常用API JDBC操作数据库的步骤 JDBC批处理 大数据处理 mybatis3.2数据库框架

    smoke-tests-conf-0.2.0-incubating.zip

    amplecode.zip,高性能JDBC批处理操作框架.amplecode

    JDBC连接操作Oracle及Mysql详解

    JDBC连接Oracle 11g及Mysql5,涉及传参,反射,读取属性文件,预处理,(预处理)批处理,带参数的存储过程,事务处理,可滚动的结果集,可更新的结果集

    JDBC笔记 JDBC笔记

    JDBC API 使得开发人员可以使用纯Java的方式来连接数据库,并进行操作。 ODBC:基于C语言的数据库访问接口。 JDBC也就是Java版的ODBC。 JDBC的特性:高度的一致性、简单性(常用的接口只有4、5个)。 1.在JDBC...

    JDBC入门到精通视频教程课堂笔记

    本套视频教程中讲解了Java语言如何连接数据库,对数据库中的数据进行增删改查操作,适合...Java教程中阐述了接口在开发中的真正作用,JDBC规范制定的背景,JDBC编程六部曲,JDBC事务,JDBC批处理,SQL注入,行级锁等。

    JDBC(powernode CD2206)详尽版 (教学视频、源代码、SQL文件)

    三、JDBC操作数据库的步骤 四、编写第一个JDBC程序 五、注册案例 六、登录案例 6.1 Statement 七、SQL注入 7.1 SQL注入 7.2 出现SQL注入的原因 7.3 解决方案 7.4 PreparedStatement接口 7.5 PreparedStatement如何...

    SpringBatch批处理 刘相编

    基本篇重点讲述了数据批处理的核心概念、典型的作业配置、作业步配置,以及Spring Batch框架中经典的三步走策略:数据读、数据处理和数据写,详尽地介绍了如何对CVS格式文件、JSON格式文件、XML文件、数据库和JMS...

    Java_JDBC由浅入深

    12.2 批处理方式插入一千条数据 69 第十三节 JDBC其他API 70 13.1 可滚动结果集 70 13.2 分页技术 72 13.3 可更新结果集 73 第十四节 编写一个简单的数据库连接池 74 14.1 为什么要使用数据库连接池 74 14.2 数据库...

    你不知道的JDBC高级应用

    1.批处理:对数据库的CRUD速度会有质的飞跃.经常在对批量CUD的时候进行. 2.数据库连接池:把对数据库的连接放入一个容器中,要的时候就取,不需要的时候就还会去.程序启动的时候慢点,后期对数据库CRUD大幅度提升.(常用...

    自己封装的JDBC工具类源码

    最近刚学习了JDBC,最后封装了一段简单的工具类,主要功能有: 1、执行sql语句返回单条查询结果; 2、执行查询语句sql返回结果集; 3、执行数据的插入,修改,删除; 4、执行批处理; 5、调用存储过程; 6、...

    自己封装的JDBC工具类

    自己封装的JDBC工具类,能够实现对数据库的增删改查以及批处理,事物处理等操作

    jdbc基础和参考

    JDBC批处理: addBatch executeBatch Statement PreparedStatement Statement{ 1.获取连接 getConnection(); 2.创建Statement conn.createStatement(); 3.执行sql语句 String sql .... insert delete update ...

Global site tag (gtag.js) - Google Analytics