0
点赞
收藏
分享

微信扫一扫

java读取csv/excel文件存入数据库

落拓尘嚣 2023-07-21 阅读 61

Java读取CSV/Excel文件并存入数据库

在实际的开发中,我们经常需要将CSV(逗号分隔值)或Excel文件中的数据导入到数据库中。Java提供了许多库和工具,可以方便地读取CSV/Excel文件并将数据存入数据库。本文将介绍如何使用Java读取CSV/Excel文件,并使用示例代码演示具体的实现过程。

CSV文件

CSV文件是一种常见的数据文件格式,每行代表一条记录,每个字段由逗号分隔。我们可以使用Java中的BufferedReader类和String.split()方法读取CSV文件。

首先,我们需要创建一个CSV文件data.csv,并包含以下内容:

Name, Age, City
John, 25, New York
Emily, 28, Los Angeles

接下来,我们可以使用如下代码读取CSV文件并打印每行内容:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class CSVReader {
    public static void main(String[] args) {
        String csvFile = "data.csv";
        String line = "";
        String csvSplitBy = ",";

        try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
            while ((line = br.readLine()) != null) {
                String[] fields = line.split(csvSplitBy);
                for (String field : fields) {
                    System.out.print(field + " ");
                }
                System.out.println();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

运行以上代码,将会输出以下结果:

Name  Age  City 
John  25  New York 
Emily  28  Los Angeles 

Excel文件

与CSV文件类似,我们可以使用Java中的第三方库Apache POI读取Excel文件。首先,我们需要引入poipoi-ooxml库的依赖。

<dependencies>
    <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>
</dependencies>

接下来,我们可以使用如下代码读取Excel文件并打印每个单元格的内容:

import org.apache.poi.ss.usermodel.*;

import java.io.FileInputStream;
import java.io.IOException;

public class ExcelReader {
    public static void main(String[] args) {
        String excelFile = "data.xlsx";

        try (Workbook workbook = WorkbookFactory.create(new FileInputStream(excelFile))) {
            Sheet sheet = workbook.getSheetAt(0);
            for (Row row : sheet) {
                for (Cell cell : row) {
                    CellType cellType = cell.getCellType();
                    if (cellType == CellType.STRING) {
                        System.out.print(cell.getStringCellValue() + " ");
                    } else if (cellType == CellType.NUMERIC) {
                        System.out.print(cell.getNumericCellValue() + " ");
                    }
                }
                System.out.println();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

运行以上代码,将会输出以下结果:

Name  Age  City 
John  25.0  New York 
Emily  28.0  Los Angeles 

将数据存入数据库

读取CSV/Excel文件只是第一步,接下来我们需要将读取到的数据存入数据库。通常,我们使用数据库连接池来管理数据库连接,这里以HikariCP为例,我们需要引入HikariCP的依赖:

<dependencies>
    <dependency>
        <groupId>com.zaxxer</groupId>
        <artifactId>HikariCP</artifactId>
        <version>3.4.5</version>
    </dependency>
</dependencies>

接下来,我们需要创建数据库表来存储数据。以MySQL为例,我们可以使用以下SQL语句创建表:

CREATE TABLE IF NOT EXISTS Persons (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    age INT NOT NULL,
    city VARCHAR(255) NOT NULL
);

然后,我们可以使用如下代码将数据存入数据库中:

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class CSVToDatabase {
    public static void
举报

相关推荐

0 条评论