Java与MySQL:利用CSV文件批量导入数据
在现代数据处理中,数据导入是非常常见的任务之一。而如果需要批量导入大量数据到MySQL数据库中,CSV文件是一种非常方便的格式。本文将介绍如何利用Java语言通过读取CSV文件并使用MySQL JDBC驱动批量导入数据到MySQL数据库中。同时,我们还将使用Mermaid语法中的journey标识出这个导入过程,并使用erDiagram标识出数据表的关系。
准备工作
在开始之前,我们需要完成以下准备工作:
- 安装Java JDK和MySQL数据库。
- 下载并安装MySQL的JDBC驱动,可以从[MySQL官方网站](
- 准备一个包含数据的CSV文件。
CSV文件结构
在本示例中,我们假设有一个包含学生信息的CSV文件,文件的结构如下:
学生ID | 姓名 | 年龄 | 性别 |
---|---|---|---|
1 | 张三 | 20 | 男 |
2 | 李四 | 22 | 男 |
3 | 王五 | 21 | 男 |
MySQL数据库准备
我们需要在MySQL数据库中创建一个表来存储学生信息。可以使用以下SQL语句创建表:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT,
gender VARCHAR(10)
);
Java代码示例
以下是使用Java编写的代码示例,用于从CSV文件中读取数据,并将数据批量导入到MySQL数据库中。
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 csvFile = "path/to/csv/file.csv";
String jdbcUrl = "jdbc:mysql://localhost:3306/database_name";
String username = "username";
String password = "password";
try (Connection connection = DriverManager.getConnection(jdbcUrl, username, password);
BufferedReader reader = new BufferedReader(new FileReader(csvFile))) {
String line;
String sql = "INSERT INTO students (id, name, age, gender) VALUES (?, ?, ?, ?)";
PreparedStatement statement = connection.prepareStatement(sql);
// 读取CSV文件的每一行数据,并将其导入到数据库
while ((line = reader.readLine()) != null) {
String[] data = line.split(",");
int id = Integer.parseInt(data[0]);
String name = data[1];
int age = Integer.parseInt(data[2]);
String gender = data[3];
statement.setInt(1, id);
statement.setString(2, name);
statement.setInt(3, age);
statement.setString(4, gender);
statement.addBatch();
}
// 批量执行导入操作
statement.executeBatch();
System.out.println("数据导入成功!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
以上代码通过JDBC驱动连接到MySQL数据库,并使用PreparedStatement
来批量执行插入操作。在循环中,我们逐行读取CSV文件的数据,并将其绑定到PreparedStatement中的参数,然后通过addBatch()
方法将每一行数据添加到批处理中。最后,通过executeBatch()
方法执行批处理操作,将数据批量导入到数据库中。
导入过程图
下面的Mermaid语法将展示这个导入过程的旅行图:
journey
title 数据导入过程
section 准备工作
section 读取CSV文件
section 数据库连接
section 执行插入操作
section 关闭连接
数据表关系图
以下是使用Mermaid语法绘制的数据表关系图:
erDiagram
students ||--o{ courses : takes
students {
int id
string name
int age
string gender
}
courses {
int id
string name
}
在这个关系图中,我们可以看到students
表和courses
表之间的关系,其中students
表中的学生可以选择修读多门课程。
结束语
通过本文,我们学习了如何使用Java语言和MySQL数据库,通过读取CSV文件并批量导入数据到数据库