首页 > 数据库 >java批量写入数据库

java批量写入数据库

时间:2024-08-17 16:17:15浏览次数:8  
标签:java HashMap mysql 数据库 tempmap 写入 sql String

使用java.sql.DriverManager;进行数据批量写入
首先下载mysql-connect连接驱动包,https://dev.mysql.com/downloads/connector/j/5.1.html
将驱动包mysql-connector-j-8.2.0.jar放入项目lib下并右键选择add as library。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;


public class BatchSQLExample {

    public static void main(ArrayList<HashMap> args) {
        try {
            Connection Database_Connection = null;
            //mysql驱动
            String driver = "com.mysql.cj.jdbc.Driver";
            //测试驱动连接
            try{
                Class.forName(driver);
            }
            catch (ClassNotFoundException e){
                e.printStackTrace();
            }
            String url = "jdbc:mysql://localhost:3306/sakila?useOldAliasMetadataBehavior%3Dtrue%26serverTimezone%3DGMT%2B8%26useUnicode%3Dtrue%26characterEncoding%3DUTF-8%26useSSL%3Dfalse%26nullCatalogMeansCurrent%3Dtrue";
            String user = "root";
            String password = "123456";

            Database_Connection = DriverManager.getConnection(url, user, password);

            String sql = "INSERT INTO user (id, username) VALUES (?, ?)";
            PreparedStatement preparedStatement = Database_Connection.prepareStatement(sql);

            for (int i = 0; i < args.size(); i++) {
                System.out.println(i);
                HashMap tempmap1 = new HashMap();
                tempmap1 = args.get(i);
                preparedStatement.setInt(1, (int) tempmap1.get("id"));
                preparedStatement.setString(2, (String) tempmap1.get("username"));
                preparedStatement.addBatch();
            }
            int[] result = preparedStatement.executeBatch();

            System.out.println("Rows affected: " + result.length);

            preparedStatement.close();
            Database_Connection.close();

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

调用批量写入函数

BatchSQLExample batchsql = new BatchSQLExample();
ArrayList<HashMap> paramList = new ArrayList<>();
HashMap tempmap = new HashMap<>();
tempmap.put("id",1);
tempmap.put("username","hw");
paramList.add(tempmap);
tempmap = new HashMap<>();
tempmap.put("id",2);
tempmap.put("username","qyq");
paramList.add(tempmap);
System.out.println(paramList);
batchsql.main(paramList);

标签:java,HashMap,mysql,数据库,tempmap,写入,sql,String
From: https://www.cnblogs.com/hanwang/p/18364554

相关文章

  • zblog该数据库里已存在相关的表和数据,请更改表前缀或是更换清空数据库再安装
    问题原因:其实这个提示已经说的很清楚了。意思就是之前你应该安装过zblog程序,所以你的数据库里面已经存在了zblog数据表。再次安装的时候因为表名是一样的所以会冲突,就会出现这个提示。解决办法:第一种:填写数据库信息的时候修改下表前缀,如下图:该数据库里已存在相关的表和数据,请......
  • Java中使用lambda表达式自定义排序
    对于一维数组,通常使用Arrays.sort()(默认升序)int[]nums={3,1,4,2};Arrays.sort(nums);对于二维数组,可以lambda表达式实现特定的排序要求。在Arrays.sort()的第二个参数中,写lambda表达式lambda表达式形如(a,b)->{returna-b;},其中a,b表示数组中的元素升序/......
  • 图数据库在社交网络分析中的应用:深度剖析与探索
    图数据库在社交网络分析中的应用:深度剖析与探索在数字时代,社交网络已成为人们日常生活不可或缺的一部分,它不仅连接了人与人之间的关系,还承载了海量的信息和交互数据。随着社交网络规模和复杂度的不断增长,如何高效地存储、查询和分析这些数据成为了一个重大挑战。图数据库以......
  • [Java SE/JDK] Java 注解机制
    1概述1.0引言面向切面编程思想(aop)与注解的结合,是实现复杂系统解藕的最终良药。软件工程的核心思想、目标追求,6字箴言:高内聚,低耦合。Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。jdk、spring、springbo......
  • 生产环境故障处理演练-mysql数据库主从恢复
    常用命令:1、查看myqsl当前所有用户:SELECTuser,hostFROMmysql.user;2、查看表mom_tms.t_tms_db_car_base_info的创建语句:showcreatetablemom_tms.t_tms_db_car_base_info;3、从库执行查看是否都是只读状态:select@@read_only;4、查询MySQL中performance_schema表......
  • Oracle 数据库中的函数REGEXP_LIKE
    REGEXP_LIKE是Oracle数据库中的一个函数,它用于基于正则表达式模式匹配字符串。这个函数非常强大,允许你执行复杂的字符串搜索和匹配操作,比标准的LIKE语句更加强大和灵活。语法REGEXP_LIKE(source_string,pattern[,match_parameter])source_string:要进行模式匹配......
  • java
    8.11(1)学生管理系统菜单搭建代码示例:importjava.util.Scanner;publicclassStudentSystem{publicstaticvoidmain(String[]args){loop:while(true){System.out.println("--------欢迎进入学生管理系统---------");System.out.println("1:添加学生");System.out.p......
  • sql server 将数据库表里面的数据,转为insert语句,方便小批量转移数据
    createproc[dbo].[proc_insert](@tablenamevarchar(256))asbeginsetnocountondeclare@sqlstrvarchar(4000)declare@sqlstr1varchar(4000)declare@sqlstr2varchar(4000)select@sqlstr='select''insert'+@tablenameselect@sqlstr1=......
  • 时序数据库
    当需要显示每分钟、每天或任何其他日期范围的分析数据时,你需要使用时间序列数据库。时间序列数据库存储了带有相关时间戳的数据点,因此可以向用户显示时间范围内的趋势。它通常用于基于时间的信息和分析的可视化。 什么是时间序列数据库?在时间序列数据库中,每条记录都包含一个......
  • Java后端面试题(mq相关)(day9)
    目录为什么用MQ?异步、削峰、解耦1.异步处理2.解耦3.削峰填谷Exchange类型什么是死信队列?如何保证消息的可靠性?RabbitMQ中如何解决消息堆积问题?RabbitMQ中如何保证消息有序性?如何防止消息重复消费?(如何保证消息幂等性)为什么用MQ?异步、削峰、解耦MQ(Message......