如何在Java中读取和解析CSV文件,然后保存到数据库
时间: 2024-03-06 09:51:41 浏览: 165
在Java中读取和解析CSV文件,然后保存到数据库的步骤如下:
1. 使用Java的文件I/O API打开CSV文件。
2. 使用Java的CSV解析库(如OpenCSV或Apache Commons CSV)解析CSV文件。
3. 逐行读取CSV文件中的数据,并将其转换为Java对象(如数组、列表或自定义对象)。
4. 使用Java的数据库API(如JDBC或Hibernate)连接到数据库并创建一个表来存储CSV数据。
5. 将CSV数据插入到数据库表中。
6. 最后,关闭CSV文件和数据库连接。
以下是一个示例代码,演示如何使用OpenCSV库读取并解析CSV文件,然后将数据保存到MySQL数据库中:
```
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
import com.opencsv.CSVReader;
import com.opencsv.exceptions.CsvException;
public class CSVToDatabaseExample {
public static void main(String[] args) throws IOException, CsvException, SQLException {
// 1. 打开CSV文件
CSVReader reader = new CSVReader(new FileReader("path/to/csv/file.csv"));
// 2. 解析CSV文件
List<String[]> csvData = reader.readAll();
// 3. 处理CSV数据
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
String sql = "INSERT INTO mytable (column1, column2, column3) VALUES (?, ?, ?)";
PreparedStatement statement = conn.prepareStatement(sql);
for (String[] row : csvData) {
statement.setString(1, row[0]);
statement.setString(2, row[1]);
statement.setString(3, row[2]);
statement.executeUpdate();
}
// 4. 关闭CSV文件和数据库连接
statement.close();
conn.close();
reader.close();
}
}
```
在此示例中,我们使用OpenCSV库的CSVReader类打开CSV文件并读取所有行。然后,我们遍历每一行,并将其插入到MySQL数据库的“mytable”表中。最后,我们关闭CSV文件和数据库连接。请注意,在此示例中,我们使用了JDBC API来连接到MySQL数据库。
阅读全文