Как я использую на, удаляют каскад в mysql?

Если вы заметили JSON, он генерируется случайным образом, но с определенным форматом

Случай 1

{
"batchcomplete": "",
"continue": {
    "grncontinue": "0.720220803439|0.720221273467|12887566|0",
    "continue": "grncontinue||"
},
"query": {
    "pages": {
        "4897672": {
            "pageid": 4897672,
            "ns": 0,
            "title": "New Hope, Sunnyvale, Texas"
        }
    }
  }
}

query и pages существовал всегда, и на страницах ключ всегда генерируется случайным образом, так что это Map<String, JSONObject> карта ключа String и JSONObject в качестве значения. Затем вам нужно получить значение title из значений карты

String API = "https://en.wikipedia.org/w/api.php?action=query&generator=random&grnnamespace=0&prop=pageimages&format=json&pithumbsize=500&utf8";

    //open connection with wikipedia.
    HttpURLConnection httpcon = (HttpURLConnection) new URL(API).openConnection();

    //read all the input from wikipedia.
    BufferedReader in = new BufferedReader(new InputStreamReader(httpcon.getInputStream()));
    String responseSB = in.lines().collect(Collectors.joining());
    in.close();
    JSONObject incomingJSON = new JSONObject(responseSB);

  Map<String,JSONObject> map =  (Map<String, JSONObject>) incomingJSON.getJSONObject("query").getJSONObject("pages");

  map.forEach((k,v)->System.out.println(" The key is : "+k+" the title is : "+v.getString("title")));

] Случай 2 С источником

{
"batchcomplete": "",
"continue": {
    "grncontinue": "0.165621850014|0.165622038679|37982311|0",
    "continue": "grncontinue||"
},
"query": {
    "pages": {
        "57529788": {
            "pageid": 57529788,
            "ns": 0,
            "title": "Model Store",
            "thumbnail": {
                "source": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Australia_New_South_Wales_relief_location_map.png/500px-Australia_New_South_Wales_relief_location_map.png",
                "width": 500,
                "height": 443
            },
            "pageimage": "Australia_New_South_Wales_relief_location_map.png"
            }
        }
    }
}

Так что source может присутствовать не в каждом ответе, обработайте с помощью try catch

String API = "https://en.wikipedia.org/w/api.php?action=query&generator=random&grnnamespace=0&prop=pageimages&format=json&pithumbsize=500&utf8";

    //open connection with wikipedia.
    HttpURLConnection httpcon = (HttpURLConnection) new URL(API).openConnection();

    //read all the input from wikipedia.
    BufferedReader in = new BufferedReader(new InputStreamReader(httpcon.getInputStream()));
    String responseSB = in.lines().collect(Collectors.joining());
    in.close();
    JSONObject incomingJSON = new JSONObject(responseSB);

  Map<String,JSONObject> map =  (Map<String, JSONObject>) incomingJSON.getJSONObject("query").getJSONObject("pages");

  map.forEach((k,v)->{
      System.out.println(" The key is : "+k+" the title is : "+v.getString("title"));  

      //use try catch to get source because you will not get the same response every time

      String source = v.getJSONObject("thumbnail").getString("source");
  });


}
38
задан Brian Tompsett - 汤莱恩 2 July 2015 в 17:06
поделиться

1 ответ

Вот то, что Вы включали бы в свою таблицу компонентов.

CREATE TABLE `components` (
    `id` int(10) unsigned NOT NULL auto_increment,
    `typeId` int(10) unsigned NOT NULL,
    `moreInfo` VARCHAR(32), 
    -- etc
    PRIMARY KEY (`id`),
    KEY `type` (`typeId`)
    CONSTRAINT `myForeignKey` FOREIGN KEY (`typeId`)
      REFERENCES `types` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
)

Просто помнят, что необходимо использовать механизм устройства хранения данных InnoDB: механизм устройства хранения данных MyISAM по умолчанию не поддерживает внешние ключи.

54
ответ дан nickf 27 November 2019 в 03:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: