Java读取JSON数据写入MySQL

介绍

在现代的软件开发中,数据的读取和写入是非常常见的操作。而JSON格式已经成为了一种非常流行的数据交换格式。在Java中,我们可以通过各种库来读取和解析JSON数据,然后将其写入到MySQL数据库中。

本文将介绍如何使用Java读取JSON数据,并将其写入到MySQL数据库中。我们将使用JSON库来解析JSON数据,并使用JDBC连接MySQL数据库进行数据的写入。

准备工作

在开始之前,我们需要进行一些准备工作。

首先,我们需要安装MySQL数据库,并创建一个数据库和表来存储我们的数据。可以使用以下SQL语句来创建一个名为example的数据库和一个名为data的表:

CREATE DATABASE example;

USE example;

CREATE TABLE data (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255),
  age INT,
  email VARCHAR(255)
);

接下来,我们需要添加一些样本数据到我们的表中,以便我们后续可以读取和写入数据。可以使用以下SQL语句添加一些样本数据:

INSERT INTO data (name, age, email) VALUES
  ('John Doe', 30, 'john.doe@example.com'),
  ('Jane Smith', 25, 'jane.smith@example.com'),
  ('Mike Johnson', 35, 'mike.johnson@example.com');

现在,我们已经完成了准备工作,可以开始编写Java代码来读取JSON数据并将其写入到MySQL数据库中。

读取JSON数据

首先,我们需要使用一个JSON库来解析JSON数据。这里我们将使用Jackson库来进行JSON的解析。可以通过以下Maven依赖来添加Jackson库到我们的项目中:

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.12.3</version>
</dependency>

下面是一个简单的JSON数据示例,我们将从中读取数据:

{
  "employees": [
    {
      "firstName": "John",
      "lastName": "Doe",
      "email": "john.doe@example.com"
    },
    {
      "firstName": "Jane",
      "lastName": "Smith",
      "email": "jane.smith@example.com"
    },
    {
      "firstName": "Mike",
      "lastName": "Johnson",
      "email": "mike.johnson@example.com"
    }
  ]
}

我们将使用Jackson库来解析上述JSON数据。首先,我们需要定义一个Java类来表示JSON数据中的员工信息:

public class Employee {
    private String firstName;
    private String lastName;
    private String email;
    
    // Getters and setters
}

然后,我们可以使用以下代码来读取JSON数据:

import com.fasterxml.jackson.databind.ObjectMapper;

// ...

ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = objectMapper.readTree(jsonString);

JsonNode employeesNode = rootNode.get("employees");
if (employeesNode.isArray()) {
    for (JsonNode employeeNode : employeesNode) {
        String firstName = employeeNode.get("firstName").asText();
        String lastName = employeeNode.get("lastName").asText();
        String email = employeeNode.get("email").asText();

        // Do something with the employee data
    }
}

上述代码首先创建了一个ObjectMapper对象,然后使用readTree方法将JSON字符串解析成一个JsonNode对象。接下来,我们通过get方法获取employees节点,并使用isArray方法检查该节点是否是一个数组。如果是数组,我们可以使用for循环遍历每个员工节点,并使用get方法获取每个员工节点中的数据。

写入MySQL数据库

接下来,我们需要使用JDBC连接MySQL数据库,并将读取的JSON数据写入到数据库中。

首先,我们需要添加JDBC驱动到我们的项目中。可以通过以下Maven依赖来添加MySQL JDBC驱动:

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.27</version>
</dependency>

然后,我们可以使用以下代码来连接MySQL数据库并将数据写入到data表中:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

// ...

String url = "jdbc:mysql://localhost:3306/example";
String username = "root";
String password =