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

使用spring boot将excel文件中的数据插入mysql

使用Spring Boot将Excel文件中的数据插入MySQL可以通过以下步骤实现:

  1. 首先,需要在Spring Boot项目中添加相关依赖。可以使用Maven或Gradle构建工具,在项目的pom.xml(或build.gradle)文件中添加以下依赖:
代码语言:txt
复制
<!-- Spring Boot Web -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!-- Apache POI for Excel manipulation -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>

<!-- MySQL Connector -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
  1. 创建一个Controller类,用于处理HTTP请求和Excel数据插入操作。可以使用@RestController注解标记该类,并使用@PostMapping注解标记处理POST请求的方法。
代码语言:txt
复制
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ExcelController {

    @PostMapping("/insertData")
    public String insertData(@RequestBody byte[] excelData) {
        // TODO: 解析Excel文件并将数据插入MySQL
        return "Data inserted successfully!";
    }
}
  1. insertData方法中,可以使用Apache POI库来解析Excel文件并将数据插入MySQL。可以使用HSSFWorkbookXSSFWorkbook类来读取Excel文件,根据文件格式选择适当的类。
代码语言:txt
复制
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

@RestController
public class ExcelController {

    @PostMapping("/insertData")
    public String insertData(@RequestBody byte[] excelData) {
        try {
            // 将字节数组转换为输入流
            ByteArrayInputStream inputStream = new ByteArrayInputStream(excelData);

            // 创建工作簿对象
            Workbook workbook = new XSSFWorkbook(inputStream);

            // 获取第一个工作表
            Sheet sheet = workbook.getSheetAt(0);

            // 遍历行
            for (Row row : sheet) {
                // 读取每行的数据并插入MySQL
                String column1 = row.getCell(0).getStringCellValue();
                int column2 = (int) row.getCell(1).getNumericCellValue();

                insertRowDataIntoMySQL(column1, column2);
            }

            // 关闭工作簿和输入流
            workbook.close();
            inputStream.close();

            return "Data inserted successfully!";
        } catch (IOException | SQLException e) {
            e.printStackTrace();
            return "Error occurred while inserting data.";
        }
    }

    private void insertRowDataIntoMySQL(String column1, int column2) throws SQLException {
        // 连接MySQL数据库
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");

        // 准备插入数据的SQL语句
        String sql = "INSERT INTO mytable (column1, column2) VALUES (?, ?)";

        // 创建预编译语句对象
        PreparedStatement statement = connection.prepareStatement(sql);

        // 设置参数值
        statement.setString(1, column1);
        statement.setInt(2, column2);

        // 执行插入操作
        statement.executeUpdate();

        // 关闭连接和语句对象
        statement.close();
        connection.close();
    }
}

以上代码示例假设MySQL数据库位于本地主机(localhost),端口为3306,数据库名为mydatabase,用户名和密码需要根据实际情况进行修改。

  1. 启动Spring Boot应用程序,并使用HTTP POST请求将Excel文件的字节数组发送到/insertData端点。可以使用Postman或类似的工具进行测试。

注意:以上代码仅提供了基本的示例,实际应用中可能需要进行错误处理、数据验证和其他优化。另外,为了保证安全性,建议在实际生产环境中使用连接池管理数据库连接。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云数据库MySQL:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云云函数(SCF):https://cloud.tencent.com/product/scf
  • 腾讯云API网关(API Gateway):https://cloud.tencent.com/product/apigateway
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysql导入excel文件_Excel数据导入MySQL「建议收藏」

一开始使用MySQL for Execl功能,在安装MySQL时候安装此控件,在Excel数据菜单下可以直接调用,可以按照数据前若干行判断数据库类型,但是比较鸡肋,因为时常判断不准,或者设置字段长度太短...1、用Navicat 10打开要导入数据数据库 2、点击导入向导,选择导入文件格式 3、选择要导入数据文件,如果有多个工作簿,可选择目标工作簿 4、填写导入数据行数,日期数字格式 5、选择目标表...,可填写表名,如该表名数据不存在,则自动生成一个新表 6、选择生成新表各字段数据类型,目标栏位名称为数据表第一行。...7、选择数据导入模式 8、按开始键,导入数据 9、导出结果为 导入MySQL数据可以通过导出向导再次导出为Excel文件。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站立刻删除。

16K11

如何excel数据导入mysql_外部sql文件导入MySQL步骤

大家好,又见面了,我是你们朋友全栈君。 客户准备了一些数据存放在 excel , 让我们导入到 mysql 。...先上来我自己把数据拷贝到了 txt 文件, 自己解析 txt 文件,用 JDBC 循环插入数据。...后来发现有更简单方法: 1 先把数据拷贝到 txt 文件 2 打开 mysql 命令行执行下面的命令就行了 LOAD DATA LOCAL INFILE ‘C:\\temp\\yourfile.txt...ENCLOSED BY 如果你数据用双引号括起来,你想忽略的话可以指定 LINES TERMINATED BY 行分割符 (windows 是 \r\n unix 系列是 \n) (field1...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站立刻删除。

5.4K30
  • Spring Boot配置线程池使用多线程插入数据

    前言 最近在工作需要将一大批数据导入到数据,因为种种原因这些数据不能使用同步数据方式来进行复制,而是提供了一批文本,文本里面有很多行url地址,需要字段都包含在这些url。...最开始是使用正常普通方式去写入,但是量太大了,所以就尝试使用多线程来写入。下面我们就来介绍一下怎么使用多线程进行导入。...1.文本格式 格式就是类似于这种格式url,当然这里只是举个例子,大概有300多个文本,每个文本里面有大概25000条url,而每条url要插入两个表,这个量还是有点大,单线程跑非常慢。...我下面这个方法是开启多线程遍历文件文件然后为每个文件都复制一个副本出来。...,但是当我真的开始导入数据时候又发现一个问题,就是每次运行后才刚开始导入就自动停止了,原因是我在Junit运行了代码后它虽然开始导入了,但是因为数据很多时间很长,而Juint跑完主线程逻辑后就把整个

    1.7K40

    使用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

    详解用Navicat工具Excel数据导入Mysql

    详解用Navicat工具Excel数据导入Mysql 大家好,我是架构君,一个会写代码吟诗架构师。...今天说一说详解用Navicat工具Excel数据导入Mysql,希望能够帮助大家进步!!!...首先你需要准备一份有数据Excel,PS: 表头要与数据库表字段名对应: 然后 “文件--->另存为.csv 文件” 如果你数据带有中文,那么需要将CSV文件处理一下,否则会导入失败;用editplus...在mac下我们可以使用Numbers来打开CSV文件,然后导出时选择编码格式为utf-8。...开始导入,我们可以选择一种Mysql图形化工具,我这边用是Navicat for mac 选择你刚刚保存csv文件 特别注意是,如果你有表头的话,则要将栏位名行改成1,第一行改成2 然后一直下一步知道直到导入成功

    2.5K30

    .NET Core使用NPOIExcel数据批量导入到MySQL

    前言:   在之前几篇博客写过.NET Core使用NPOI导出Word和Excel文章,今天把同样我们日常开发中比较常用使用Excel导入数据MySQL数据文章给安排上。...二、ASP.NET Core使用EF Core连接MySQL执行简单CRUD操作:   因为该篇文章会涉及到MySQL数据操作,所以前提我们需要有一点CRUD基础。...文档格式有误"); } #endregion 2、NPOI获取Excel单元格不同类型数据: 注意,咱们填写在Excel单元格数据可能为多种不同数据类型...表格数据,Excel文件流转化为dataTable数据源 /// 默认第一行为标题 /// /// <param name...: https://www.cnblogs.com/Can-daydayup/p/11588531.html .NET Core使用NPOIExcel数据批量导入到MySQL: https

    4.7K20

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

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

    1.7K50

    使用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...echo "==== ${endTime} ====" 3 脚本管理 目前已经把这个脚本放在Github了,地址是https://github.com/vfhky/shell-tools,以后脚本更新或者更多好用脚本也都会加入到这个工程

    55010

    _Spring Boot配置文件介绍及其使用教程

    =8888   而使用YAML文件配置tomcat端口: server:         port: 8888 二、配置简单数据 除了覆盖默认配置,我们还可以在YAML文件配置其他信息以便我们在项目中使用...我们可以通过@Value注解配置文件值映射到一个Spring管理Bean字段上,用法如下: yml文件如下: name: zhangsan student: age: 10 female...不过要注意是:@Value只能映射简单数据类型,不能将yaml文件对象、集合映射到属性。...那我们应该如何映射到实体类呢,通过 @ConfigurationProperties(prefifix="对象") 可以配置文件配置自动与实体进行映射,这样可以yml文件配置对象属性直接映射到...六、占位符使用 YAML文件可以使用 ${} 占位符,它有两个作用: 使用配置文件值 比如说我们使用自定义端口,并在页面展示:配置文件如下图 我们再写一个控制器方法 package com.example.demo.controller

    21530

    WebSocket在Spring Boot使用

    在 WebSocket API ,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性连接,并进行双向数据传输。”...——《菜鸟教程》 简而言之,WebSocket是实现服务端主动向客户端推送数据一项技术,它使用ws协议实现。...它实现过程是这样:客户端首先发起一个ws请求,这个请求最好能包含一个id(服务器根据这个id数据推送至客户端),当请求成功后,客户端和服务端建立起一个通道,客户端可通过此通道像服务端发送数据,...在Spring Boot实现WebSocket功能还是比较容易,具体过程如下: 1.首先在pom文件引入相关依赖 org.springframework.boot... spring-boot-starter-websocket 2.开启Spring Boot对websocket

    4.2K10

    Spring Boot JPA transaction使用

    Spring Boot JPA transaction使用 transaction是我们在做数据库操作时候不能回避一个话题,通过transaction,我们可以保证数据库操作原子性,一致性,隔离性和持久性...本文我们将会深入探讨Spring Boot JPA@Transactional注解使用。...如果放在方法上面,那么该方法所有public方法都会应用该Transaction。 如果@Transactional放在private方法上面,则Spring Boot将会忽略它。...如果没有则创建,如果有transaction,则Spring将会把该放方法业务逻辑附加到已有的transaction。...隔离级别主要是为了防止下面3个并发过程可能出现问题: 脏读:读取一个transaction还没有提交change 不可重复读:在一个transaction修改数据某行数据时,另外一个transaction

    2.2K40

    spring boot 使用ConfigurationProperties注解配置文件属性值绑定到一个 Java 类

    @ConfigurationProperties 是一个spring boot注解,用于配置文件属性值绑定到一个 Java 类。...它通常与 Spring Boot 应用程序一起使用,以简化配置文件处理。...通过在类上添加该注解,可以指定要绑定属性前缀或名称,并自动配置文件对应属性值赋值给类属性。...类型安全:通过属性绑定,@ConfigurationProperties 提供了类型安全方式来读取配置文件属性值。它允许属性值直接绑定到正确数据类型,而不需要手动进行类型转换。...动态刷新:在 Spring Boot 使用 @ConfigurationProperties 绑定属性值可以与 Spring 动态刷新机制集成,以实现属性值动态更新。

    57620

    文件导入到数据_csv文件导入mysql数据

    大家好,又见面了,我是你们朋友全栈君。 如何 .sql 数据文件导入到SQL sever? 我一开始是准备还原数据,结果出现了如下问题。...3、与上述两种数据库DSN不同,文件DSN把具体配置信息保存在硬盘上某个具体文件文件DSN允许所有登录服务器用户使用,而且即使在没有任何用户登录情况下,也可以提供对数据库DSN访问支持。...此外,因为文件DSN被保存在硬盘文件里,所以可以方便地复制到其它机器。这样,用户可以不对系统注册表进行任何改动就可直接使用在其它机器上创建DSN。...在以上三种数据库DSN,建议用户选择系统DSN或文件DSN,如果用户更喜欢文件DSN可移植性,可以通过在NT系统下设定文件访问权限获得较高安全保障。 如何区别用户DSN、系统DSN?...\ 如果用户将同一个数据库分别设置在用户dsn和系统dsn(万一嘛…),后果就是,Tomcat报”不能使用’未知数据库资源”。

    14.3K10

    Python绘制图形保存到Excel文件

    标签:Python与Excel,pandas 在上篇文章,我们简要地讨论了如何使用web数据在Python创建一个图形,但是如果我们所能做只是在Python显示一个绘制图形,那么它就没有那么大用处了...解决方案是使用Excel作为显示结果媒介,因为大多数人电脑上都安装有Excel。因此,我们只需将Python生成图形保存到Excel文件,并将电子表格发送给用户。...根据前面用Python绘制图形示例(参见:在Python绘图),在本文中,我们: 1)美化这个图形, 2)将其保存到Excel文件。...生成图形保存到Excel文件 我们需要先把图形保存到电脑里。...plt.savefig(r'D:\python_pretty_plot.png') 然后可以使用xlsxwriter库创建一个Excel文件

    5K50
    领券