首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用jdbc在mysql数据库中快速批量插入数据

使用JDBC在MySQL数据库中快速批量插入数据可以通过以下步骤实现:

  1. 首先,确保已经导入了MySQL的JDBC驱动程序,并设置好数据库连接参数。
  2. 创建数据库连接:通过JDBC的DriverManager类的getConnection()方法来建立与MySQL数据库的连接,传入数据库URL、用户名和密码等参数。
  3. 开启批处理模式:调用连接对象的setAutoCommit()方法,将其设置为false,以开启事务批处理模式。
  4. 创建SQL插入语句:使用SQL语句拼接,创建待插入数据的INSERT语句。
  5. 创建预编译语句对象:使用连接对象的prepareStatement()方法创建PreparedStatement对象,将待插入的SQL语句作为参数传入。
  6. 设置参数并添加到批处理中:使用PreparedStatement对象的setXXX()方法设置SQL语句中的占位符参数,并通过addBatch()方法将每个插入语句添加到批处理中。
  7. 执行批处理:调用PreparedStatement对象的executeBatch()方法执行批处理操作。
  8. 提交事务:通过连接对象的commit()方法提交事务。
  9. 关闭资源:分别关闭PreparedStatement对象、数据库连接对象以及相关资源。

下面是示例代码:

代码语言:txt
复制
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class BatchInsertExample {
    public static void main(String[] args) {
        String jdbcUrl = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "root";
        String password = "password";
        
        String sql = "INSERT INTO mytable (column1, column2) VALUES (?, ?)";
        
        try (Connection connection = DriverManager.getConnection(jdbcUrl, username, password);
             PreparedStatement statement = connection.prepareStatement(sql)) {
            
            connection.setAutoCommit(false); // 开启事务批处理模式
            
            for (int i = 0; i < 1000; i++) {
                statement.setString(1, "value1");
                statement.setString(2, "value2");
                statement.addBatch(); // 添加到批处理中
            }
            
            statement.executeBatch(); // 执行批处理
            
            connection.commit(); // 提交事务
            
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

在上述示例代码中,jdbcUrl表示数据库连接的URL,username和password分别表示数据库的用户名和密码。sql是待插入数据的INSERT语句,其中的占位符使用问号(?)表示。

通过循环执行addBatch()方法将每个插入语句添加到批处理中,最后调用executeBatch()方法执行批处理操作。在执行完批处理后,调用commit()方法提交事务,并关闭相关资源。

推荐腾讯云相关产品:云数据库 MySQL、云数据库 TencentDB for MySQL。 腾讯云产品介绍链接地址:

  • 云数据库 MySQL:https://cloud.tencent.com/product/cdb
  • 云数据库 TencentDB for MySQL:https://cloud.tencent.com/product/tencentdb-mysql
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用JDBC连接MySQL数据库--典型案例分析(七)----批量插入员工信息

转载请注明:张奇的CSDN博客 - 博客频道 - CSDN.NET 问题: 向Emp表批量插入100条数据,需要插入数据的列为empno,ename以及sal.这三个字段对应的数据分别为empno列的数据通过序列...方案: 每循环一次,向数据库插入一条数据,频繁的访问数据库,效率很低。 java中专门提供的批处理的API。在对数据库频繁操作时,可以使用JDBC批处理方式提高程序的效率。...: 步骤一:Mysql数据创建序列emp_seq Mysql数据库创建序列名为emp_sql,该序列的起始值为1,步进为1,SQL语句如下所示: CREATE TABLE emp_seq ( seq...操作数据库的基本代码 首先新建类Batch,该类中新建batchAdd方法,然后,准备数据库连接Connection对象,操作SQL语句的Statement对象以及设置事务管理;最后进行异常的处理,代码如下所示...; } } } } 步骤 三:批量向Emp表插入数据 使用statement的addBatch方法和executeBatch方法,批量向Emp表插入数据,代码如下所示:

89310

使用shell脚本批量插入数据MySQL

经常会踫到这样的场景需求:批量MySQL数据库插入数据,显然手工INSERT成千上万条数据是不现实的,所以自己写了这个shell脚本来处理。...1 具体需求 shell脚本批量插入10万条数据MySQL,其中对应表唯一索引是用户uid。因此程序循环1万次数时,每次都使uid自增1就行了。...2 脚本代码 鉴于数据量比较大,我们的shell脚本需要考虑MySQL执行INSERT的效率,所以采用了对次数取模拼接多个VALUES的值来实现。.../bin/bash # FileName: batchinsertmysqlshell1.sh # Description: 使用shell脚本批量插入数据MySQL # Simple...====" 3 脚本管理 目前已经把这个脚本放在Github了,地址是https://github.com/vfhky/shell-tools,以后脚本的更新或者更多好用的脚本也都会加入到这个工程

55510
  • MySQL批量插入数据库实现语句性能分析

    允许我们一条sql语句中批量插入数据,如下sql语句: INSERT INTO example (example_id, name, value, other_value) VALUES...sql语句优化的小技巧,下面会分别进行测试,目标是插入一个空的数据表200W条数据   第一种方法:使用insert into 插入,代码如下: $params = array('value'=>'50...第二种方法:使用事务提交,批量插入数据库(每隔10W条提交下)最后显示消耗的时间为:22:56:13 23:04:00 ,一共8分13秒 ,代码如下: echo date("H:i:s"); $...SQL语句:将SQL语句进行拼接,使用 insert into table () values (),(),(),()然后再一次性插入,如果字符串太长,   则需要配置下MYSQLmysql 命令行运行...->query($sql);   最后总结下,插入批量数据时,第一种方法无疑是最差劲的,而第二种方法实际应用中就比较广泛,第三种方法插入测试数据或者其他低要求时比较合适,速度确实快。

    3.8K10

    python中使用pymysql往mysql数据库插入(insert)数据实例

    cs1.close() # 关闭connection对象 conn.close() if __name__ == '__main__': main() 补充拓展:记学习pymysql插入数据时的一次坑...在学习python时,做一个简单的mysql的操作,正确代码如下: import pymysql.cursors # 获取数据库连接 connection = pymysql.connect(...connection.commit() except: print("something wrong") db.rollback() finally: connection.close() 但在整个过程,...瞬间感觉好无奈,看看控制台的错误,完全没有定位到port这一行去,那一般都是提示错误的一行及以下查找原因,结果这次跑上面去了!!! 最后,数据类型该是啥就是啥,一定要细心,谨记谨记!...以上这篇python中使用pymysql往mysql数据库插入(insert)数据实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

    15.3K10

    jspJDBC连接MySQL数据库

    前言:进行网页制作时,难免会有数据库使用,今天来讲一下jsp利用JDBC连接MySQL数据库::: 文章目录: 一.JDBC: 二.连接数据库: 1.需要的包: 2.加载驱动: 3.连接数据库:...一.JDBC: JDBC:Java数据库连接(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库数据的方法...JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。...(——简介摘自JDBC–百度百科) 二.连接数据库: 注:本案例运用到的数据库版本和驱动版本为: 图片 1.需要的包: <%@ page language="java" contentType=...驱动 Class.forName("com.mysql.cj.jdbc.Driver"); 3.连接数据库: String url = "jdbc:mysql://localhost:3306/demon

    8.8K20

    php往mysql批量插入数据实例教程

    default '0' COMMENT '年龄', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表'; 批量插入...方法一、使用for循环插入 mysql插入少量数据的时候,我们一般用for循环 $arr = [ [ 'name' = 'testname1', 'age' = 18, ],...costEnd = microtime(true); $cost = round($costEnd - $costBegin, 3); var_dump($cost); $conn- close(); 假如说要批量插入大量数据...对比一下插入少量数据插入大量数据使用上面的for循环插入耗费的时间: 条数 时间 (单位:秒) 10 0.011 1000 0.585 10000 5.733 100000 60.587 方法二、...使用insert语句合并插入 mysql里面是可以使用insert语句进行合并插入的,比如 INSERT INTO user_info (name, age) VALUES ('name1', 18)

    1.8K32

    使用jdbc连接mysql数据库_mysql允许远程连接

    JDBC(Java Database Connectivity,Java数据库连接)是 Java 语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库数据的方法。...本文讲述如何使用 JDBC 来连接和访问数据库。 为方便引入 JDBC 依赖包,我们创建 Maven 项目来实现我们的示例程序。... MVN Repositoty 网站找到 JDBC 的引入方式,链接http://mvnrepository.com/artifact/mysql/mysql-connector-java/8.0.11...为方便测试,我们先在 MySQL 的test数据库创建表并插入数据。...获得 MySQL 的连接后,我们执行 SQL 查询语句,并遍历输出查询的结果集。 为增加程序的健壮性,我们程序添加了关闭资源的操作,以避免资源泄露。

    30.8K20

    JmeterJDBC Connection Configuration实现MySQL JDBC Request数据库处理

    一、JDBC Connection Configuration数据库配置元件 线程组-添加-配置元件-JDBC Connection Configuration ?..., 值得注意的是,jdbc request可以通过这个名称选择合适的连接池进行使用。...: Database URL:数据库连接url;MySQL格式【jdbc:mysql://host_ip:端口号,默认3306/数据库名称】 JDBC Driver class:数据库驱动;com.mysql.jdbc.Driver...Username:数据库登录用户名 Password:数据库登录密码 二、JDBC Request 数据库请求元件 线程组-添加-取样器-JDBC Request Name:组件名称,请随意...tips:运行结果将会以多个map形式的list保存在所设置的变量,结果的列名作为map的key值,列的值作为map的value;使用方法columnValue = vars.getObject("

    2.3K20

    JDBC操作数据库,第一:jsp插入mysql数据库,坎坷摸索分享

    JSP连接数据库,坎坷摸索了好久,现在终于做好了,分享一下,希望对更多热爱编程学习的人有所帮助!!!谢谢  第一:首先准备的就是已经安装好Mysql,这里不做多叙述,百度可以做到。...然后mysql数据库做如下操作: 需要注意的是自己创建的数据库的名字,和数据表的名字,这两个和后面写的程序息息相关,所以必须引起重视 ? ? ? ? ? ? 第二步:就可以开始写程序了。...:mysql://localhost:3306/test";//数据库连接字符串,这点是这个test是自己创建的数据表的名字,一定要写对了。...+""); 26 String url="jdbc:mysql://localhost:3306/test";//数据库连接字符串 27 String name...成功完成jsp插入mysql数据库数据,特此分享。

    2.8K70

    PHP MySQL数据库插入新记录

    PHP MySQL数据库插入新记录 向数据库插入数据 INSERT INTO 语句用于向数据库表添加新记录。...为了让 PHP 执行该语句,我们必须使用 mysql_query() 函数。该函数用于向 MySQL 连接发送查询或命令。 =======直接用php语句====== ========来自web表单的数据插入数据库======== 现在,我们创建一个 HTML 表单,这个表单可把新记录插入 "Persons" 表。...insert.php"文件连接数据库,并通过 $_POST 变量从表单取回值。然后,mysql_query() 函数执行 INSERT INTO 语句,一条新的记录会添加到数据库。...php $conn=mysql_connect('127.0.0.1','root','root')or die("数据库连接错误:".mysql_error()); //连接数据库 mysql_select_db

    20.5K30

    经验:MySQL数据库,这4种方式可以避免重复的插入数据

    ,测试SQL语句如下,当插入本条数据时,MySQL数据库会首先检索已有数据(也就是idx_username索引),如果存在,则忽略本次插入,如果不存在,则正常插入数据: ?...02 on duplicate key update 即插入数据时,如果数据存在,则执行更新操作,前提条件同上,也是插入数据字段设置了主键或唯一索引,测试SQL语句如下,当插入本条记录时,MySQL数据库会首先检索已有数据...03 replace into 即插入数据时,如果数据存在,则删除再插入,前提条件同上,插入数据字段需要设置主键或唯一索引,测试SQL语句如下,当插入本条记录时,MySQL数据库会首先检索已有数据(idx_username...,这种方式适合于插入数据字段没有设置主键或唯一索引,当插入一条数据时,首先判断MySQL数据库是否存在这条数据,如果不存在,则正常插入,如果存在,则忽略: ?...目前,就分享这4种MySQL处理重复数据的方式吧,前3种方式适合字段设置了主键或唯一索引,最后一种方式则没有此限制,只要你熟悉一下使用过程,很快就能掌握的,网上也有相关资料和教程,介绍的非常详细,感兴趣的话

    4.5K40

    python操作MySQL数据库

    本篇主要介绍如何使用pymysql操作数据库,下面直接进入正文 1.查询数据 # coding: utf-8 # author: hmk import pymysql.cursors # 连接数据库...(result_3) cursor.close() # 关闭游标 conn.close() # 关闭连接 2.插入数据 # coding: utf-8 # author: hmk import...') # 创建一个游标 cursor = conn.cursor() # 插入数据 # 数据直接写在sql后面 sql = "insert into maoyan_movie(ranking,movie..."隔开,此时它的sql中注意要给中文字符对应的占位符加上引号,即"%s",不然会报错:unsupported format character conn.commit() # 提交,不然无法保存插入或者修改的数据...movie=%s where ranking=%s" data = ('寂静之地', 1) cursor.execute(sql, data) conn.commit() # 提交,不然无法保存插入或者修改的数据

    4.4K20
    领券