以下是一个通过 JAVA 从接口获取 JSON 数据解析并存入数据库的示例程序:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import org.json.JSONArray;
import org.json.JSONObject;

public class JsonToDatabase {
  
  // JDBC连接信息
  private static final String DB_DRIVER = "com.mysql.jdbc.Driver";
  private static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase";
  private static final String DB_USER = "root";
  private static final String DB_PASSWORD = "password";
  
  // API接口信息
  private static final String API_URL = "http://example.com/api/data.json";
  
  public static void main(String[] args) {
    try {
      // 加载数据库驱动
      Class.forName(DB_DRIVER);
      
      // 获取数据库连接
      Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
      
      // 调用API接口获取JSON数据
      String jsonData = getJsonData(API_URL);
      
      // 解析JSON数据并存入数据库
      JSONArray jsonArray = new JSONArray(jsonData);
      for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject jsonObject = jsonArray.getJSONObject(i);
        String name = jsonObject.getString('name');
        int age = jsonObject.getInt('age');
        String gender = jsonObject.getString('gender');
        // 将数据插入数据库
        insertData(conn, name, age, gender);
      }
      
      // 关闭数据库连接
      conn.close();
      
      System.out.println("Data has been inserted into database successfully.");
      
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    } catch (SQLException e) {
      e.printStackTrace();
    }
  }
  
  /**
   * 从API接口获取JSON数据
   * 
   * @param apiUrl API接口地址
   * @return JSON数据字符串
   * @throws Exception
   */
  private static String getJsonData(String apiUrl) throws Exception {
    URL url = new URL(apiUrl);
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setRequestMethod("GET");
    BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String inputLine;
    StringBuffer response = new StringBuffer();
    while ((inputLine = br.readLine()) != null) {
      response.append(inputLine);
    }
    br.close();
    return response.toString();
  }
  
  /**
   * 将数据插入数据库
   * 
   * @param conn 数据库连接
   * @param name 姓名
   * @param age 年龄
   * @param gender 性别
   * @throws SQLException
   */
  private static void insertData(Connection conn, String name, int age, String gender)
      throws SQLException {
    String sql = "INSERT INTO users (name, age, gender) VALUES (?, ?, ?)";
    PreparedStatement ps = conn.prepareStatement(sql);
    ps.setString(1, name);
    ps.setInt(2, age);
    ps.setString(3, gender);
    ps.executeUpdate();
  }
}

此程序通过调用 API 接口获取 JSON 数据,并使用 JSON 库解析数据。然后,将数据插入到 MySQL 数据库中。通过修改数据库连接信息和 API 接口地址,可以将此程序适配到不同的环境中。

Java 从接口获取 JSON 数据解析并存入数据库

原文地址: https://www.cveoy.top/t/topic/lzZv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录