解析CSV文件并入库的Java实现

在日常开发中,我们经常会遇到需要解析CSV文件并将数据导入数据库的需求。本文将介绍如何使用Java语言来解析CSV文件,并将数据入库的方法。

CSV文件是什么?

CSV是一种常见的数据交换格式,全称是Comma-Separated Values,即逗号分隔值。CSV文件由多个字段组成,每个字段之间通过逗号进行分隔。通常情况下,第一行是字段名,后续每一行是一条记录。

Java解析CSV文件

Java提供了许多库可以用来解析CSV文件,比如Apache Commons CSV、OpenCSV等。这里我们以Apache Commons CSV为例来演示解析CSV文件的方法。

首先,我们需要在pom.xml文件中添加Apache Commons CSV的依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.8</version>
</dependency>

接下来,我们来编写一个简单的Java程序来读取CSV文件并输出内容:

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;

import java.io.FileReader;
import java.io.Reader;

public class ReadCSVFile {

    public static void main(String[] args) {
        try {
            Reader reader = new FileReader("data.csv");
            CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT.withFirstRecordAsHeader());

            for (CSVRecord csvRecord : csvParser) {
                String id = csvRecord.get("id");
                String name = csvRecord.get("name");
                System.out.println("ID: " + id + ", Name: " + name);
            }

            csvParser.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

上面的代码演示了如何读取名为data.csv的CSV文件,并输出每一行记录的idname字段。

数据入库

接下来,我们可以将读取到的CSV数据入库。这里我们以MySQL数据库为例,使用JDBC连接数据库并插入数据:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class InsertData {

    public static void main(String[] args) {
        try {
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "username", "password");

            String query = "INSERT INTO table_name (id, name) VALUES (?, ?)";
            PreparedStatement pstmt = conn.prepareStatement(query);

            // 读取CSV文件并逐行插入数据
            // ...

            pstmt.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们使用JDBC连接到MySQL数据库,并准备一个插入数据的SQL语句。接下来,我们可以根据读取到的CSV数据逐行执行插入操作。

总结

通过本文的介绍,我们了解了如何使用Java解析CSV文件并将数据入库的方法。首先,我们使用Apache Commons CSV库来读取CSV文件的内容,然后使用JDBC连接数据库并插入数据。这种方法适用于处理大量的数据,让数据操作更加高效。

希望本文对你有所帮助,谢谢阅读!