Невозможно вставить данные из json в таблицу в базе данных - PullRequest
0 голосов
/ 14 июля 2020

Кажется, моя программа работает правильно и печатает, что записи вставлены в мою базу данных. Однако, когда я открываю свою базу данных в SQLite Studio, она не показывает никаких записей в моей таблице ine_data. Как вы думаете, есть ли ошибка в столбце id? Спасибо за помощь. Ниже мой код java, мой файл json и мой вывод.

Это мой java код:

package com.arrowplus.arrowplus;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.*;
import org.json.JSONObject;
import org.json.JSONArray;
import org.json.simple.parser.ParseException;
import java.sql.Connection;
import java.sql.DriverManager;


public class Connect {


    public static Connection ConnectToDB() throws Exception {
        Connection conn = null;

            // db parameters
            String url = "jdbc:sqlite:C:/sqlite/AP.db";
            // create a connection to the database
            conn = DriverManager.getConnection(url);

            System.out.println("Connection to SQLite has been established.");
            return conn;

    }

    public static void connect() {

            try {
                // Read file into a string
                BufferedReader reader = new BufferedReader(new FileReader("C:/Users/Arrowplus/Desktop/jsonTest.json"));
                StringBuilder stringBuilder = new StringBuilder();
                String line = null;
                String ls = System.getProperty("line.separator");
                while ((line = reader.readLine()) != null) {
                    stringBuilder.append(line);
                    stringBuilder.append(ls);
                }
                // delete the last new line separator
                stringBuilder.deleteCharAt(stringBuilder.length() - 1);
                reader.close();

                String content = stringBuilder.toString();
                // convert to json array
                JSONArray json = new JSONArray();
                //Retrieving the array
                //JSONArray jsonArray = (JSONArray) jsonObject.get("");

                Connection con = ConnectToDB();
                PreparedStatement pstmt = con.prepareStatement("INSERT INTO ine_data values ('id', 'date', 'valor', 'DataUltimoAtualizacao', 'geodsg')");
                for (int i = 0; i < json.length(); i++){

                    JSONObject record = json.getJSONObject(i);
                    int id = Integer.parseInt((String) record.get("id"));
                    String date = (String) record.get("date");
                    int valor = Integer.parseInt((String) record.get("valor"));
                    String dateUpdate = (String) record.get("DataUltimoAtualizacao");
                    long dateUpdate2 = Date.valueOf(dateUpdate).getTime();
                    String city = (String) record.get("geodsg");
                    pstmt.setInt(1, id);
                    pstmt.setString(2, date);
                    pstmt.setInt(3, valor);
                    pstmt.setDate(4, new Date(dateUpdate2));
                    pstmt.setString(5, city);
                    pstmt.executeUpdate();
                }
                System.out.println("Records inserted.....");
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (ParseException e) {
                e.printStackTrace();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        /**
         * @param args the command line arguments
         */
        public static void main (String[]args){
            connect();
        }
    }

Это мой json файл:

    [ {
"IndicadorCod" : "0010042",
  "IndicadorDsg" : "Valor mediano de avaliação bancária (€/ m²) por Localização geográfica (Município - 2013) e Tipo de construção; Mensal - INE, Inquérito à avaliação bancária na habitação",
  "MetaInfUrl" : "https://www.ine.pt/bddXplorer/htdocs/minfo.jsp?var_cd=0010042&lingua=PT",
  "DataExtracao" : "2020-06-29T15:55:51.640+01:00",
  "DataUltimoAtualizacao" : "2020-06-29",
  "UltimoPref" : "Maio de 2020",
  "Dados" : {
    "202005" : [ {
      "geocod" : "1701106",
      "geodsg" : "Lisboa",
      "dim_3" : "T",
      "dim_3_t" : "Total",
      "valor" : "3084"
    } ]
  }
} ]

А это мой вывод:

Connection to SQLite has been established.
Records inserted.....

Process finished with exit code 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...