java读取多个csv文件导入到不同的数据表
时间: 2023-11-20 08:55:12 浏览: 137
JAVA读取CSV到数据库表中
以下是Java读取多个CSV文件导入到不同数据表的示例代码:
```java
import java.io.BufferedReader;import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class CSVImporter {
public static void main(String[] args) {
String[] files = {"file1.csv", "file2.csv", "file3.csv"}; // CSV文件路径数组
String url = "jdbc:mysql://localhost:3306/mydatabase"; // 数据库连接URL
String user = "root"; // 数据库用户名
String password = "password"; // 数据库密码
try {
Connection conn = DriverManager.getConnection(url, user, password);
for (String file : files) {
String tableName = file.substring(0, file.indexOf(".")); // 根据文件名生成表名
String sql = "CREATE TABLE IF NOT EXISTS " + tableName + " (col1 VARCHAR(255), col2 VARCHAR(255), col3 VARCHAR(255))"; // 根据表名生成建表语句
PreparedStatement createTableStmt = conn.prepareStatement(sql);
createTableStmt.executeUpdate(); // 执行建表语句
BufferedReader reader = new BufferedReader(new FileReader(file));
String line;
while ((line = reader.readLine()) != null) {
String[] values = line.split(","); // 逗号分隔每一行的值
sql = "INSERT INTO " + tableName + " (col1, col2, col3) VALUES (?, ?, ?)"; // 根据表名生成插入语句
PreparedStatement insertStmt = conn.prepareStatement(sql);
insertStmt.setString(1, values[0]);
insertStmt.setString(2, values[1]);
insertStmt.setString(3, values[2]);
insertStmt.executeUpdate(); // 执行插入语句
}
reader.close();
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
该示例代码中,首先定义了一个包含CSV文件路径的字符串数组。然后,根据每个文件名生成对应的表名,并根据表名生成建表语句。接着,使用BufferedReader逐行读取CSV文件,并使用逗号分隔每一行的值。最后,根据表名生成插入语句,并将每一行的值插入到对应的数据表中。
阅读全文