0

0

JDBC的批处理操作

爱谁谁

爱谁谁

发布时间:2025-07-25 08:14:41

|

386人浏览过

|

来源于php中文网

原创

在jdbc中,批处理操作允许将多条sql语句一起执行,从而提高数据库操作的效率。以下是关于批处理的详细说明和示例代码:

1.1.1 什么是批处理

在之前的JDBC操作中,我们通常是一条SQL语句执行一次。现在,通过批处理,我们可以将多条SQL语句组合在一起,一次性执行。

1.1.2 批处理的基本使用

以下是批处理的基本使用示例:

package com.xdr630.jdbc.demo6;

import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.Statement; import org.junit.Test; import com.xdr630.jdbc.utils.JDBCUtils;

/**

  • 批处理操作示例

  • @author xdr */ public class JDBCDemo6 {

    @Test /**

    • 批处理基本操作 */ public void demo1() { Connection conn = null; Statement stmt = null; try { // 获得连接 conn = JDBCUtils.getConnection(); // 创建执行批处理对象 stmt = conn.createStatement(); // 编写一批SQL语句 String sql1 = "create database test1"; String sql2 = "use test1"; String sql3 = "create table user(id int primary key auto_increment, name varchar(20))"; String sql4 = "insert into user values (null, 'aaa')"; String sql5 = "insert into user values (null, 'bbb')"; String sql6 = "insert into user values (null, 'ccc')"; String sql7 = "update user set name = 'mmm' where id = 2"; String sql8 = "delete from user where id = 1"; // 添加到批处理 stmt.addBatch(sql1); stmt.addBatch(sql2); stmt.addBatch(sql3); stmt.addBatch(sql4); stmt.addBatch(sql5); stmt.addBatch(sql6); stmt.addBatch(sql7); stmt.addBatch(sql8); // 执行批处理 stmt.executeBatch(); } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtils.release(stmt, conn); } } }

执行后的结果:

JDBC的批处理操作

Zeemo AI
Zeemo AI

一款专业的视频字幕制作和视频处理工具

下载

1.1.3 批量插入(使用PreparedStatement)

以下是使用PreparedStatement进行批量插入的示例:

@Test
/**
  • 批量插入记录

  • 默认情况下MySQL批处理没有开启的,需要在url后面拼接一个参数即可。 */ public void demo2() { // 记录开始时间 long begin = System.currentTimeMillis(); Connection conn = null; PreparedStatement pstmt = null; try { // 获得连接 conn = JDBCUtils.getConnection(); // 编写SQL语句 String sql = "insert into user values (null, ?)"; // 预编译SQL pstmt = conn.prepareStatement(sql); for (int i = 1; i <= 10000; i++) { pstmt.setString(1, "name" + i); pstmt.addBatch(); if (i % 1000 == 0) { pstmt.executeBatch(); pstmt.clearBatch(); } } // 执行剩余的批处理 pstmt.executeBatch(); } catch (Exception e) { e.printStackTrace(); } finally { JDBCUtils.release(pstmt, conn); } // 记录结束时间 long end = System.currentTimeMillis(); System.out.println("批量插入10000条记录耗时:" + (end - begin) + "毫秒"); }

  • 为了启用MySQL的批处理,需要修改db.properties配置文件:

    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql:///test1?rewriteBatchedStatements=true
    username=root
    password=1234

    执行完成后就会插入一万条记录:

    JDBC的批处理操作

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    通义千问
    通义千问

    阿里巴巴推出的全能AI助手

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    数据分析工具有哪些
    数据分析工具有哪些

    数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

    727

    2023.10.12

    SQL中distinct的用法
    SQL中distinct的用法

    SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    327

    2023.10.27

    SQL中months_between使用方法
    SQL中months_between使用方法

    在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

    350

    2024.02.23

    SQL出现5120错误解决方法
    SQL出现5120错误解决方法

    SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

    1242

    2024.03.06

    sql procedure语法错误解决方法
    sql procedure语法错误解决方法

    sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

    360

    2024.03.06

    oracle数据库运行sql方法
    oracle数据库运行sql方法

    运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

    820

    2024.04.07

    sql中where的含义
    sql中where的含义

    sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

    581

    2024.04.29

    sql中删除表的语句是什么
    sql中删除表的语句是什么

    sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

    423

    2024.04.29

    俄罗斯Yandex引擎入口
    俄罗斯Yandex引擎入口

    2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

    158

    2026.01.28

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    PostgreSQL 教程
    PostgreSQL 教程

    共48课时 | 8万人学习

    Excel 教程
    Excel 教程

    共162课时 | 14万人学习

    PHP基础入门课程
    PHP基础入门课程

    共33课时 | 2万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号