`

Java程序向数据库批量更新

 
阅读更多
JSONArray list = json.getJSONArray("data_list");
conn.setAutoCommit(false);
 
PreparedStatement pstmt = conn.prepareStatement("insert into db_order values(?,?,?,?)");
PreparedStatement stat = conn.prepareStatement("insert into db_order_rcv(sequenceid, mobile, price) values(?,?,?)");

for(int n = 0;n<list.size();n++){
    JSONObject json = list.getJSONObject(n);

    pstmt.setInt(1, json.getInt("sid"));
    pstmt.setString(2, json.getString("mobile"));
    pstmt.setFloat(3, 49.99);
    pstmt.setBoolean(4, true);
    pstmt.addBatch();

    stat.setString(1, json.getInt("sid"));
    stat.setString(2, json.getString("mobile"));
    stat.setFloat(3, 49.99);
    stat.addBatch();
}

int[] updateCount = pstmt.executeBatch();
int[] counts = stat.executeBatch();
conn.commit();
conn.setAutoCommit(true);

      有的时候,工作上需要将数据批量地增改至数据库中,这时候Java的JDBC驱动程序提供的批量更新功能就很重要,可以在一个网络往返行程中在数据库中执行多条SQL语句。

      要确定JDBC驱动程序是否支持批量更新,快速调用DatabaseMetaData.supportsBatchUpdates()可产生一个明示支持与否的布尔值。在支持批量更新时(由一些非select标示),所有任务逐个排队然后在某一瞬间同时得到更新,如上述代码所示。

      默认必须调用setAutoCommit(),驱动程序会试图交付提供给它的每条语句。(这里不是很清楚!)

      准备好各种语句之后,在数据库中使用executeBatch()触发所有的语句,这将返回一组整型值,每个值保存同样的结果,好像使用了executeUpdate()一样。

      在批量处理的一条语句发生错误的情况下,如果驱动程序不支持批量更新,或者批量处理中的一条语句返回ResultSet,驱动程序将抛出一个BatchUpdateException。有时候,在抛出一个异常之后,驱动程序可能试着继续执行语句。JDBC规范不能授权某一行动,因此应该事先试用驱动程序,这样就可以确切地知道它是如何工作的。

分享到:
评论

相关推荐

    java代码oracle数据库批量插入

    这段Java代码通过JDBC实现了向Oracle数据库批量插入数据的功能。关键步骤包括:建立数据库连接、准备SQL语句、批量添加SQL语句到批处理队列、执行批处理以及事务提交。这种方式相比于逐条插入数据,可以显著提升插入...

    Java实现批量向mysql写入数据的方法

    该示例代码可以作为Java程序设计的参考,帮助读者更好地理解Java语言在数据库应用中的使用。 此外,本文还提供了一些相关的学习资源,例如《Java+MySQL数据库程序设计总结》、《Java数据结构与算法教程》、《Java...

    JAVA 线程实现数据库的主从同步更新

    在"JavaDBTest"这个示例中,我们可以推测这是一个用于测试上述主从同步功能的Java程序。它可能包含了创建和管理线程、与数据库交互的代码,以及各种同步和异常处理逻辑。为了进一步学习和实践,你可以查看并分析这个...

    java数据库应用程序编程指南

    2. **驱动管理器(DriverManager)**:在Java程序中,使用DriverManager类注册数据库驱动并建立到数据库的连接。例如,通过`Class.forName()`加载Oracle JDBC驱动,然后调用`DriverManager.getConnection()`创建连接...

    数据库批量数据拷贝

    数据库批量数据拷贝是一项在IT领域中常见的任务,特别是在数据迁移、备份或分析时。它涉及到从一个数据库中选择性地或整体地复制数据到另一个数据库。以下是对这个主题的详细解释: 首先,批量数据拷贝的核心是有效...

    用java程序怎么实现200ms往数据库中插入10000条数据

    在 Java 程序中,实现高效的数据库插入数据是非常重要的。以下是相关的知识点: 使用 JDBC 连接数据库 在 Java 程序中,使用 JDBC(Java Database Connectivity)连接数据库是非常常见的。JDBC 是一个 Java API,...

    java源码 将数据库中保存的图片批量导出为文件

    背景:由于之前程序是将图片以16进制数的形式直接保存到数据库的。现需要将图片批量导出所以写了下面的简易代码,供大家学习交流使用。 目的:将mssql数据库中类型为image的图片信息,导出到文件(*.jpg)

    java 多线程操作数据库

    本文将基于一个具体的Java多线程操作数据库的应用程序,深入探讨其背后的原理、实现细节以及潜在的挑战。 #### 核心知识点: 1. **多线程基础**:多线程是Java编程中的一个重要概念,允许程序同时执行多个任务。在...

    JDBC与Java数据库程序设计

    本书首先会介绍JDBC的基本概念,包括JDBC驱动程序的分类和工作原理,以及如何在Java程序中加载和注册驱动。读者将学习到如何使用`java.sql.DriverManager`类来建立数据库连接,并通过`Connection`对象执行SQL语句。 ...

    JAVA—JDBC数据库查询小程序

    **JAVA—JDBC数据库查询小程序** 本程序是一个基于JAVA实现的JDBC数据库操作小程序,它提供了全面的数据库交互功能,包括增(Insert)、删(Delete)、改(Update)和查(Select)。此外,还增加了模糊查询等高级...

    JAVA操作cassandra数据库

    在Java编程环境中,Cassandra数据库是一个高性能、分布式、NoSQL型的数据存储系统。它由Apache Software Foundation维护,设计用于处理...同时,持续关注Cassandra的最新版本和Java驱动的更新,以便利用新功能和优化。

    java批量插入Oracle数据方法

    在IT领域,特别是数据库操作与Java编程中,批量插入数据是一项常见且重要的任务。通过优化这一过程,可以显著提升应用程序的性能,特别是在处理大量数据时。以下是对“java批量插入Oracle数据方法”的深入解析,包括...

    JDBC批量插入 更新 删除等操作

    通过JDBC,Java应用程序可以与多种类型的数据库进行交互,实现数据的读取、写入等功能。批量操作是指在一次数据库连接中执行多次SQL语句的操作,这种方式能显著提高程序性能,尤其是在处理大量数据时。 **批量插入*...

    图片批量导入oracle数据库

    因此,你可以编写一个通用的Java程序来处理图片的批量导入,只需针对不同数据库调整JDBC驱动即可。 批量导入图片到Oracle数据库通常涉及以下几个步骤: 1. **配置JDBC连接**:首先,你需要在Java代码中引入Oracle...

    java操作数据库 导出excel

    首先,Java数据库连接(JDBC)是Java平台的标准接口,允许Java程序与各种类型的数据库进行通信。通过JDBC,你可以执行SQL查询,插入、更新或删除数据,甚至处理事务。在Java程序中,你需要加载对应的数据库驱动,...

    Accp8.0\S2\使用Java实现数据库编程 第二章

    这通常涉及到Java的JDBC(Java Database Connectivity)技术,它是Java平台的标准接口,允许Java应用程序连接并操作各种类型的数据库。本章节可能涵盖以下关键知识点: 1. JDBC基础:理解JDBC API的核心组件,如...

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

    它是Java平台标准的一部分,允许开发人员执行SQL查询、更新数据库以及管理数据库连接。本资料"JDBC与Java数据库程序设计.rar"显然是关于如何利用JDBC进行数据库编程的详细教程。 1. **JDBC基础知识**: - JDBC API...

    Java后台+mysql数据库+Springboot+微信扫码点餐小程序

    三,Java后台技术点 管理后台 后台登录 饭店管理员 菜品类目 excel批量导入与导出 菜品管理 菜品批量导入与导出 订单管理 饭店收入统计和菜品库存预警 用户和会员管理 可以在后台送客户金额,用于模拟支付 客户评价...

Global site tag (gtag.js) - Google Analytics