java语言 csv文件转化成数据库
时间: 2023-10-02 12:04:25 浏览: 70
aaa.rar_csv_java csv_oracle
可以按照以下步骤实现:
1. 读取 csv 文件,可以使用 Java 自带的 BufferedReader 类来读取文件。
2. 解析 csv 文件,将数据存储在一个二维数组中,可以使用 Java 自带的 String 类的 split() 方法来分割每一行的数据。
3. 连接数据库,可以使用 JDBC(Java 数据库连接)来连接数据库。
4. 创建数据库表,可以使用 SQL 语句来创建表。
5. 将 csv 数据插入到数据库表中,可以使用 SQL 语句来插入数据。
以下是一个示例代码:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class CsvToDatabase {
public static void main(String[] args) {
String csvFile = "path/to/csv/file.csv";
String jdbcUrl = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "password";
String tableName = "csv_table";
try {
// Connect to database
Connection conn = DriverManager.getConnection(jdbcUrl, username, password);
// Read CSV file
BufferedReader br = new BufferedReader(new FileReader(csvFile));
String line;
String[] headers = null;
String[][] data = new String[100][100];
int row = 0;
while ((line = br.readLine()) != null) {
String[] values = line.split(",");
if (headers == null) {
headers = values;
} else {
for (int i = 0; i < values.length; i++) {
data[row][i] = values[i];
}
row++;
}
}
// Create table
StringBuilder createTableSql = new StringBuilder();
createTableSql.append("CREATE TABLE " + tableName + " (");
for (int i = 0; i < headers.length; i++) {
createTableSql.append(headers[i] + " VARCHAR(255),");
}
createTableSql.replace(createTableSql.length() - 1, createTableSql.length(), ")");
PreparedStatement createTableStmt = conn.prepareStatement(createTableSql.toString());
createTableStmt.executeUpdate();
// Insert data
StringBuilder insertSql = new StringBuilder();
insertSql.append("INSERT INTO " + tableName + " VALUES (");
for (int i = 0; i < headers.length; i++) {
insertSql.append("?,");
}
insertSql.replace(insertSql.length() - 1, insertSql.length(), ")");
PreparedStatement insertStmt = conn.prepareStatement(insertSql.toString());
for (int i = 0; i < row; i++) {
for (int j = 0; j < headers.length; j++) {
insertStmt.setString(j + 1, data[i][j]);
}
insertStmt.executeUpdate();
}
// Close resources
br.close();
createTableStmt.close();
insertStmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
注意:上述代码仅作为示例,实际应用中需考虑异常处理、数据类型转换等因素。
阅读全文