欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

Java大文件csv讀取寫入MySQL

林子帆2年前13瀏覽0評論

今天我們來學習如何使用Java來讀取大文件csv并將其寫入MySQL數據庫。在實際應用中,我們經常會遇到需要讀取大文件csv的情況,而直接讀取會導致內存溢出。因此,我們需要使用Java提供的流來處理大文件csv數據。

首先,我們需要導入以下依賴:

<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.5.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>

其中,opencsv庫是用來讀取csv文件的,mysql-connector-java庫是用來連接MySQL數據庫的。

接著,我們來編寫Java代碼:

import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import com.opencsv.CSVReader;
import com.opencsv.exceptions.CsvValidationException;
public class CSVToMySQL {
public static void main(String[] args) throws SQLException, CsvValidationException {
String jdbcURL = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "password";
Connection connection = DriverManager.getConnection(jdbcURL, username, password);
String csvFilePath = "/path/to/csv/file.csv";
CSVReader csvReader = new CSVReader(new FileReader(csvFilePath));
String[] nextRecord;
while ((nextRecord = csvReader.readNext()) != null) {
String insertQuery = "INSERT INTO table_name (column_1, column_2, column_3) VALUES (?, ?, ?)";
PreparedStatement preparedStatement = connection.prepareStatement(insertQuery);
preparedStatement.setString(1, nextRecord[0]);
preparedStatement.setString(2, nextRecord[1]);
preparedStatement.setString(3, nextRecord[2]);
preparedStatement.executeUpdate();
}
csvReader.close();
connection.close();
}
}

以上代碼中,我們首先定義了連接MySQL數據庫的參數,包括URL、用戶名和密碼。接著,我們使用CSVReader來讀取csv文件,然后利用PreparedStatement將數據插入到MySQL數據庫中。最后,關閉CSVReader和數據庫連接。

需要注意的是,以上代碼仍然可能會出現內存溢出的情況。如果csv文件非常大,我們也可以將其分割成多個小文件進行讀取,以減少內存的占用。

綜上,我們可以使用Java來讀取大文件csv并將其寫入MySQL數據庫。希望本文能夠對大家有所幫助。