`
lornlorn
  • 浏览: 15227 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

使用JDBC批处理进行数据库操作

阅读更多

在进行大批量数据插入、更新时 使用hibernate明显做了很多无用功,导致反应时间过长;在这种情况下可以使用JDBC批处理完成数据库操作。

 

package com.jdbc.batch;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;

/**
 * Created by IntelliJ IDEA.
 * User: DiaoLei
 * Date: 2010-6-3
 * Time: 21:51:48
 * To change this template use File | Settings | File Templates.
 */
public class Batch {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement ps = null;

        try {
            //connect DB
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
            String url = "jdbc:oracle:thin:@localhost:1521:ora10g"; //ora10g为数据库的SID
            String username = "res_col";
            String password = "res_col";
            conn = DriverManager.getConnection(url, username, password);
            
            String sql = "Insert INTO testjdbc(num,ask_num) VALUES(?,?)";
//            String sql = "update testjdbc set ask_num = ? where num = ?"; //更新的时候使用下边注释的两行
            ps = conn.prepareStatement(sql);
            
            //测试
            int k[] = {1, 2, 3, 4, 5};
            String str[] = {"0.99", "0.98", "0.97", "0.96", "0.95"};

            for (int i = 0; i < 5; i++) {
                ps.setString(1, "" + k[i] + ""); //代表上边sql语句的第一个?的value
                ps.setString(2, str[i]); //代表上边sql语句的第二个?的value
/*                ps.setString(2, "" + k[i] + "");
                ps.setString(1, str[i]);*/
                ps.addBatch();
            }
            ps.executeBatch();
        } catch (SQLException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        } catch (ClassNotFoundException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        } catch (InstantiationException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        } catch (IllegalAccessException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
    }
}
 
分享到:
评论

相关推荐

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

    MySQL批处理是JDBC提供的一种优化数据库操作的方法,它允许开发者一次提交多个SQL语句,从而提高数据处理效率。本文将深入探讨JDBC在MySQL数据库中的应用,以及如何实现批处理操作。 首先,理解JDBC的基础知识至关...

    使用jdbc动态连接数据库

    `Connection`接口表示一个到数据库的实际连接,所有针对数据库的操作都是基于这个连接进行的。`Connection`的一些常用方法包括: - `clearWarnings()`:清除所有警告信息。 - `createStatement()`:创建一个`...

    使用jdbc的高级数据库操作

    综上所述,使用JDBC进行高级数据库操作涉及连接管理、预编译SQL、批处理、事务控制、结果集处理、存储过程、连接池、JDBC批注等多个方面。理解和掌握这些技术,可以提升你的Java数据库编程能力,实现高效、安全的...

    批处理对数据库的应用

    通过对多个操作进行打包处理,不仅可以大大提高系统的性能,还能简化数据处理流程,降低出错的可能性。随着大数据和云计算的发展,批处理技术的应用场景将会更加广泛。开发者和数据库管理员应该熟练掌握这一技术,...

    使用JDBC的批处理功能

    本文将详细阐述JDBC批处理的基本概念、优势以及如何在实际应用中使用。 一、批处理的概念 批处理是指一次性提交多个SQL语句到数据库进行执行,而不是逐个发送和执行。在JDBC中,批处理主要通过Statement或...

    JDBC批处理数据

    通过上述示例可以看出,使用JDBC批处理能够显著提高数据处理的速度和效率,特别是在处理大量数据时。为了进一步优化性能,还可以考虑以下几点: - **批量提交大小:** 调整批处理中SQL语句的数量,找到最佳的批量...

    非常有用的jdbc的操作数据库

    在Java世界里,JDBC是连接各种数据库的标准,无论你是使用MySQL、Oracle还是SQL Server,都可以通过JDBC进行操作。 **一、JDBC基本操作流程** 1. **加载驱动**:使用`Class.forName()`方法加载数据库驱动,例如`...

    jdbc 批处理.rar

    在给定的博客链接中,可能详细解释了这些概念,并提供了示例代码来演示如何在实际应用中实现JDBC批处理。通过学习这个资源,开发者可以更好地理解和应用批处理技术,提升Java数据库应用程序的效率。

    使用 JDBC 的高级数据库操作

    本篇文章将深入探讨使用JDBC进行高级数据库操作的相关知识点,帮助开发者更好地理解和运用这一强大的工具。 一、JDBC API组件 JDBC API主要包含以下几个核心组件: 1. `DriverManager`:负责注册和管理数据库驱动...

    JDBC与Java数据库程序设计

    JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它是Java平台的标准部分,允许开发者编写数据库独立的代码,这意味着使用JDBC可以连接到不同的数据库系统,如MySQL、...

    Java用JDBC实现对Oracle数据库操作

    标题“Java用JDBC实现对Oracle数据库操作”主要涉及Java编程语言如何利用Java Database Connectivity (JDBC) API来与Oracle数据库进行交互。JDBC是Java中用于与各种数据库通信的标准接口,而Oracle数据库是一个广泛...

    通过JDBC连接oracle数据库的十大技巧

    这是因为`PreparedStatement`支持真正的批处理操作,能够一次性执行多条SQL语句,从而减少了与数据库之间的网络往返次数,提高了数据处理的速度。 以上六大技巧只是通过JDBC连接Oracle数据库时可以采用的方法的一...

    JDBC与Java数据库编程

    现代Java开发中,JDBC常与Hibernate、MyBatis等ORM(Object-Relational Mapping)框架结合使用,简化数据库操作,提高开发效率。 总结,JDBC是Java开发中不可或缺的工具,理解和掌握其工作原理和最佳实践,能够帮助...

    JDBC高级批处理

    JDBC批处理的实现依赖于数据库驱动的实现,不同数据库的驱动可能会有不同的优化策略。深入研究JDBC源码,可以帮助我们理解批处理在底层是如何工作的,以及如何针对特定数据库优化性能。 ### 8. 工具支持 很多...

    Mybatis与JDBC批量插入MySQL数据库性能测试

    首先,JDBC(Java Database Connectivity)是Java平台中用于与数据库交互的一种规范,它允许程序员使用SQL语句直接操作数据库。在批量插入场景下,JDBC提供了Statement对象的addBatch()和executeBatch()方法,可以将...

    JDBC 的高级数据库操作

    在Java编程中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的一组接口和类。本主题将深入探讨JDBC的高级数据库操作,帮助开发者实现更高效、更安全的数据管理。 一、JDBC连接数据库 在Java中,...

    JDBC与Java数据库程序设计(中文)

    总之,JDBC是Java开发人员与数据库进行交互的重要工具,理解和熟练掌握JDBC能有效提升数据库应用的开发效率和质量。通过阅读《JDBC与Java数据库程序设计》这本书,你可以深入学习到更多关于JDBC的高级特性,如批处理...

    用pinyin4j 获取拼音简码 + JXL 读写Excl文件 + JDBC 批处理

    例如,如果你需要更新大量用户的数据,可以使用JDBC批处理来批量更新,减少网络通信和数据库事务处理的开销。 结合这三个技术,我们可以实现一个功能强大的系统。例如,一个基于Web的应用可能需要从用户上传的Excel...

    JDBC与Java数据库程序设计.rar

    例如,使用Connection的setAutoCommit()方法控制事务手动提交,使用PreparedStatement的addBatch()方法添加多条SQL语句进行批处理,以及DataSource接口配合连接池如C3P0、HikariCP来管理数据库连接,提高系统性能。...

Global site tag (gtag.js) - Google Analytics