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

java -How使用批处理将excel数据插入数据库?

在Java中,可以使用批处理将Excel数据插入数据库。下面是一个完善且全面的答案:

批处理是一种将多个操作一起执行的技术,可以提高数据插入的效率。在Java中,可以使用Apache POI库来读取Excel文件,使用JDBC来连接数据库并执行插入操作。

以下是一个示例代码,演示如何使用批处理将Excel数据插入数据库:

代码语言:txt
复制
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class ExcelToDatabase {
    public static void main(String[] args) {
        String excelFilePath = "path/to/excel/file.xlsx";
        String databaseUrl = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "username";
        String password = "password";

        try (Connection connection = DriverManager.getConnection(databaseUrl, username, password)) {
            FileInputStream fileInputStream = new FileInputStream(excelFilePath);
            Workbook workbook = new XSSFWorkbook(fileInputStream);
            Sheet sheet = workbook.getSheetAt(0);

            String insertQuery = "INSERT INTO mytable (column1, column2, column3) VALUES (?, ?, ?)";
            PreparedStatement preparedStatement = connection.prepareStatement(insertQuery);

            int batchSize = 1000; // 每次插入的批处理大小
            int count = 0;

            for (Row row : sheet) {
                Cell cell1 = row.getCell(0);
                Cell cell2 = row.getCell(1);
                Cell cell3 = row.getCell(2);

                preparedStatement.setString(1, cell1.getStringCellValue());
                preparedStatement.setString(2, cell2.getStringCellValue());
                preparedStatement.setString(3, cell3.getStringCellValue());

                preparedStatement.addBatch();

                if (++count % batchSize == 0) {
                    preparedStatement.executeBatch();
                }
            }

            preparedStatement.executeBatch(); // 执行剩余的批处理

            workbook.close();
            fileInputStream.close();

            System.out.println("数据插入成功!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

上述代码假设你已经将Excel文件的路径、数据库的URL、用户名和密码替换为实际值。代码使用了MySQL数据库作为示例,你可以根据实际情况修改数据库驱动和连接信息。

这段代码使用了XSSFWorkbook类来读取Excel文件,假设Excel文件的第一个工作表是要插入数据库的数据。插入操作使用了预编译的SQL语句,通过设置参数的方式将Excel单元格的值插入到数据库表中。

需要注意的是,代码中使用了批处理技术,每插入一定数量的数据后才执行一次批处理,以提高插入效率。你可以根据实际情况调整批处理的大小。

推荐的腾讯云相关产品:腾讯云数据库MySQL、腾讯云云服务器。你可以访问以下链接获取更多关于这些产品的详细信息:

希望这个答案能够满足你的需求,如果有任何问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java Excel百万数据快速插入数据库思路

思路假设数据有100万。要将数据快速插入数据库,首先得减少读取数据的时间开支。减少插入数据时,时间上的开支。数据量过大容易产生OOM思路一:单线程逐行解析,单线程逐行插入。...思路二:单线程逐行解析,单线程批量插入。思路三:多线程解析,单线程批量插入。思路四:多线程解析,多线程批量插入。...(推荐)数据获取对于百万级数据的获取,本人一般采用alibabat提供的easyexcel工具。...数据插入建议使用MyBatis-Plus框架,其提供了数据库多行数据插入的方法,可减少IO,同时开启JDBC批量插入&rewriteBatchedStatements=true对于数据插入比较简单的方法就是直接通过简单...Sql逐条插入采用多线程的方式分批插入,如果每一批1w数据的话,大概1分钟左右就能处理完。

27710
  • Golang并发把excel数据插入数据库

    1.下载Excel文档并读取 由于我的excel文档在阿里云里,所以需要先用链接把excel下载到本地来,代码如下 func Download(url, excelName string) { res...每次批量插入100条数据数据库 func InsertBatch(temp [][]string, length int) error { db := modelUtils.GetDB() //gorm...(path) //从excel数据,data里存放的就是excel里除去顶部标题的数据 if err !...最终结果: 大概有40多万条数据,每5000条数据一个goroutine,那么大概需要80多个goroutine,总共花费的时间大概是1分钟,因为阿里云服务器为2核4G的性能,所以主要的性能瓶颈在于服务器上的数据库...,虽然开启的数据库池,但是单条数据插入时间是固定的 我还试了一下把同样40多万的数据插入到亚马逊云的数据库,要16分钟左右,因为服务器在国外,所以受网络影响较大 image.png

    2.9K10

    Python读取excel文件数据插入数据库

    例子: excel文件StudentInfo.xls的学生信息插入到student表中 注: 使用的版本:Python3.7,MySQL5.5 一、连接mysql数据库 安装第三方库pymysql...sql语句,则代表连接数据库成功; 连接数据库成功后,先插入一条数据看看效果 # 使用cursor()方法获取操作游标 c = conn.cursor() sql = "insert into student...# 插入数据,需执行conn.commit() conn.commit() # 关闭数据库连接 conn.close() 注:使用pymysql操作数据库时,增删改与查询是有区别的,在增删改操作时一定要记得...获取到每个学生的属性值后,就可以逐个插入数据中了,总代码如下 import pymysql import xlrd """ 一、连接mysql数据库 """ # 打开数据库连接 conn = pymysql.connect...print(cap) # [['9022478', '郭赛', '男', 34.0, 'CS'], ['9022472', '林伟', '男', 36.0, 'MA'], ···] """ 三、读取到的数据批量插入数据库

    1.2K10

    Excel数据插入Mysql数据库可能遇到的问题

    excel数据保存成txt文件,或者手动复制到txt,默认会以一个tab为列间隔。 2. 在mysql数据库中建表:create table table_name ... 3....使用mysql的load命令导入本地数据: load data local infile"path" into table table_name fields terminated by '\t'; /...为表名 或者 load data local infile"path" into table table_name("field1","field2"...); //field为对应的字段名 注意,如果插入的编码格式不对...如果使用主键自增的方式(auto_increment),当你第一次导入数据错误后,删除(delete),重新导入,会发现key的值不再是从1开始(前面的序号已被用掉)。...此外,导入数据,可能存在格式上的问题,如头尾存在空格,可使用trim函数: update table_name set field = trim(field); 甚至还可选择去掉左或右空格,ltrim,

    1.7K50

    如何excel表格导入mysql数据库_MySQL数据库

    怎么把excel里的数据导入数据库中的表中 打开企业管理器开要导入数数据库,在表上按右键,所务–>导入数据,弹出DTS导入/导出向导,按 下一步 , 2、选择数据源 Microsoft Excel 97...-2000,文件名 选择要导入的xls文件,按 下一步 , 3、选择目的 用于SQL Server 的Microsoft OLE DB提供程序,服务器选择本地(如果是本地数据库的话,如 VVV),使用SQL...如何excel中的数据导入到数据库 1)你的sql server,找到要导入数据数据库,右键——〉——〉导入数据 2)图示选择要导入的excel 3)选择导入到哪个数据库 4)导入excel选择第一项即可...phpexcel导入excel数MYSQL数据库 第三步:向数据库插入数据的insertdb.php文件。 [php] view plain copy print?...一.使用php excel parser pro软件,但是这个软件为收费软件; 二.可excel表保存为csv格式后通过phpmyadmin或者sqlyog导入,sqlyog导入的方法为: ·excel

    55.8K40

    使用Python数据保存到Excel文件

    标签:Python与Excel,Pandas 前面,我们已经学习了如何从Excel文件中读取数据,参见: Python pandas读取Excel文件 使用Python pandas读取多个Excel...工作表 Python读取多个Excel文件 如何打开巨大的csv文件或文本文件 接下来,要知道的另一件重要事情是如何使用Python数据保存回Excel文件。...但是,这并不妨碍我们使用另一种语言来简化我们的工作 保存数据Excel文件 使用pandas数据保存到Excel文件也很容易。...可能通常不使用此选项,因为在保存到文件之前,可以在数据框架中删除列。 保存数据到CSV文件 我们可以使用df.to_csv()将相同的数据框架保存到csv文件中。...本文讲解了如何一个数据框架保存到Excel文件中,如果你想将多个数据框架保存到同一个Excel文件中,请继续关注完美Excel

    19K40

    java批量插入数据库之写绑定变量

    最近查到关于sql批量写入和绑定变量的问题,看到了很多好的帖子,再次进行总结 数据库在执行SQL语句时会首先解析SQL语句,解析又分为硬解析与软解析。...当你发出一条sql语句交付Oracle,在执行和获取结果前,Oracle对此sql进行几个步骤的处理过程: 1、语法检查(syntax check)   检查此sql的拼写是否语法。...=fff;   select aaa,bbb from ccc where ddd=ggg;   select aaa,bbb from ccc where ddd=hhh;   每条语句都要被数据库解析一次...,这样比较浪费资源,如果把eee换成绑定变量形式,无论ddd后面是什么值,都不需要重复解析 通过 那么如何在java中实现绑定变量,主要用两种方法,一种是?...,则需要在后面添加pstmt.close();   这里可以看到通过设置的方式可以让数据库认为成一条语句,这里必须按照这种方法,如果用简单的字符串拼接的方法,数据库依然认为成两条语句具体可以参考http

    34020

    java数据导出为excel表格_数据库表中数据导出到文本文件

    公司开发新系统,需要创建几百个数据库表,建表的规则已经写好放到Excel中,如果手动创建的话需要占用较长的时间去做,而且字段类型的规则又被放到了另一张表,如果手动去一个一个去匹配就很麻烦,所以我先把两张表都导入数据库中...,建表的数据如下: 其中字段类型被存放到了另一个表中,根据字段的code从另一表去取字段类型: 然后通过java程序的方式,从数据库中取出数据自动生成建表语句,生成的语句效果是这样的:...代码如下:(主要是提供思路,对于不同的建表规则不能完全适用,SQL语句为oracle数据库SQL语句) import java.io.BufferedWriter; import java.io.File...,则跳过 if(datalist.get(i).getFiledname().length()==0){ //一个新表开始,重新创建一个表,因为数据库存储的数据,每一个表结束会另起一行,数据中只包含表名...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站立刻删除。

    3.2K40

    Java实现pdf和Excel的生成及数据动态插入、导出

    公司有这么两个需求: 需求一、给了一个表单,让把查出来的数据组装到表单中并且提供以PDF格式的下载功能。 需求二、数据查出来以Excel表格的形式下载下来。...二、Java实现PDF的生成和数据动态插入、导出功能 1、第一步:PDF制作模板 因为PDF常用的软件不让支持编辑,我们就先使用WPS以Word的形式进行编辑制作出与客户需求一样的样式,然后直接另存为...多种数据库只需一个工具就能搞定!...实现Excel生成和数据插入、导出 这个比较简单,直接上代码(假定你的实体类、查询什么的都已经写好)注意:实体类一个是你自己的数据实体类还有一个是你导出时表格中对应的实体类 我们以一个真实的公司业务来举个例子...多种数据库只需一个工具就能搞定!

    1.6K40

    使用EasyExcel实现数据导出成Excel&Excel数据导入数据库

    里面的数据导入到数据库,就不需要这个工具类 24行,有个ExcelDataListener,No2是数据库实体类 意思是Excel导入时,对应那个数据库实体类 package...; import java.util.Collection; import java.util.List; import java.util.function.Function; /** * Excel...(); } } ---- Excel数据导入到数据库 它的大概逻辑就是: 接收实体类就是:对应Excel的实体类 表格里面的数据,全部读取出来,然后映射到接收实体类里面,接受实体类再对照...数据库实体 类进行批量插入数据库 1.实体类准备 需要准备一个对应Excel的接受实体类,我准备的名字叫up 例如:我的表格 对应的实体类 @ExcelProperty(“编号2”) 对应表格里面的名字...的批量插入方法,no是我变量名 No2:数据库实体类 up:接受实体类(对应Excel的) @PostMapping("/upload") public String upload(

    1.4K30

    Java实现pdf和Excel的生成及数据动态插入、导出

    公司有这么两个需求: 需求一、给了一个表单,让把查出来的数据组装到表单中并且提供以PDF格式的下载功能。 需求二、数据查出来以Excel表格的形式下载下来。...一、Java实现PDF的生成和数据动态插入、导出功能 1、第一步:PDF制作模板 因为PDF常用的软件不让支持编辑,我们就先使用WPS以Word的形式进行编辑制作出与客户需求一样的样式,然后直接另存为...> itextpdfartifactId> 5.5.13version> dependency> 实现生成PDF、数据插入、导出 @RegisterToSMP...实现Excel生成和数据插入、导出 这个比较简单,直接上代码(假定你的实体类、查询什么的都已经写好)注意:实体类一个是你自己的数据实体类还有一个是你导出时表格中对应的实体类。...100道Java中高级面试题汇总 我们以一个真实的公司业务来举个例子(一个统计疫情登记人员信息的Excel导出功能) a.表头对应实体类ExportYqfkdj.java import lombok.Data

    1.5K21
    领券