当前位置: 首页 > 图灵资讯 > 技术篇> 前后端分离项目Java后端如何将excel数据导入数据库

前后端分离项目Java后端如何将excel数据导入数据库

来源:图灵教育
时间:2023-12-15 10:11:43

Java后端前后端分离项目如何将Excel数据导入数据库引言

在前端和后端分离项目中,前端通常负责数据显示和用户交互,而后端负责数据处理和存储。有时,我们需要将从Excel表格中导出的数据导入到数据库中,以便进一步处理和分析。本文将介绍如何使用Java后端将Excel数据导入数据库,并提供示例代码。

问题描述

假设我们的项目是学生信息管理系统,我们需要将学生信息数据从Excel表格导入数据库。Excel表格的结构如下:

学生姓名年龄性别所在班级张318男一班李417女二班王519男三班

我们需要将这些学生信息导入数据库的学生表,结构如下:

字段名类型varchar年龄int性别varchar所在班级的varchar解决方案

为了解决这个问题,我们可以使用Java的Apache POI库读取Excel文件,并使用JDBC连接数据库插入数据。以下是解决方案的步骤:

第一步:引入依赖

首先,我们需要在项目中工作pom.xml将Apachee引入文件 依赖POI和JDBC:

<dependencies>    <!-- Apache POI -->    <dependency>        <groupId>org.apache.poi</groupId>        <artifactId>poi</artifactId>        <version>4.1.2</version>    </dependency>    <dependency>        <groupId>org.apache.poi</groupId>        <artifactId>poi-ooxml</artifactId>        <version>4.1.2</version>    </dependency>        <!-- JDBC -->    <dependency>        <groupId>mysql</groupId>        <artifactId>mysql-connector-java</artifactId>        <version>8.0.22</version>    </dependency></dependencies>
第二步:编写Java代码

接下来,我们可以编写Java代码,将Excel数据导入数据库。首先,我们需要创建一个Student类表示学生信息:

public class Student {    private String name;    private int age;    private String gender;    private String className;    // 省略了结构方法、getter和setter方法

然后,我们可以写一个ExcelImporter类读取Excel文件并将数据导入数据库:

import org.apache.poi.ss.usermodel.*;import java.io.FileInputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class ExcelImporter {    private static final String JDBC_URL = "jdbc:mysql://localhost:3306/mydb";    private static final String JDBC_USERNAME = "root";    private static final String JDBC_PASSWORD = "password";    public static void main(String[] args) {        String excelFilePath = "path/to/excel/file.xlsx";        List<Student> students = readStudentsFromExcel(excelFilePath);        insertStudentsIntoDatabase(students);    }    public static List<Student> readStudentsFromExcel(String filePath) {        List<Student> students = new ArrayList<>();        try (FileInputStream fileInputStream = new FileInputStream(filePath);             Workbook workbook = WorkbookFactory.create(fileInputStream)) {            Sheet sheet = workbook.getSheetAt(0); // 假设学生信息在第一个sheet中            Iterator<Row> rowIterator = sheet.iterator();            while (rowIterator.hasNext()) {                Row row = rowIterator.next();                if (row.getRowNum() == 0) {                    continue; // 跳过表头行                }                Student student = new Student();                student.setName(row.getCell(0).getStringCellValue());                student.setAge((int) row.getCell(1).getNumericCellValue());                student.setGender(row.getCell(2).getStringCellValue());                student.setClassName(row.getCell(3).getStringCellValue());                students.add(student);            }        } catch (Exception e) {            e.printStackTrace();        }        return students;    }    public static void insertStudentsIntoDatabase(List<Student> students) {        try (Connection connection = DriverManager.getConnection(JDBC_URL