MySQLJSON-Algorithmus Datenstruktur Java
Die Datenbankfelder sind wie in der Abbildung gezeigt
Drei Primärschlüssel Tag, Stunde, Geschäft, was bedeutet, dass Sie die Details eines Geschäfts unter herausfinden können Eine bestimmte Stunde an einem bestimmten Tag durch Drücken von Verkaufsstatus,
Tag, Stunde und Filialdaten können wiederholt werden, aber die aus den drei Feldern zusammengesetzten Daten sind eindeutig.
Erforderlich für die Verwendung von Java MySQL JDBC (andere Datenbankverbindungstechnologien sind ebenfalls akzeptabel), aber die Sprache muss Java sein.
Wie lese ich die Datenbank, um JSON im folgenden Format zu bilden?
Ich verwende selbst JDBC und verwende dann mehrschichtige While-Schleifen, um dieses Format zu bilden, aber es ist sehr ineffizient. Wenn die Datenmenge groß ist, wird sie sehr langsam sein
Auf der Suche nach einer effizienten Lösung
Mehrstufiges verschachteltes Format
{
2016-07-16:
{
1:
[
nike:{
sales_count:1000
profit:200
s. ales_value:10000
{
sales_count:1001
Gewinn: 201
Sales_Value: 10001
}
> nike: {
Sales_count: 1002
Gewinn: 203
Sales_Value: 10004
adidas: profit:206
sales_value:10007
}
]
...
2016-07-17:
{
1:
[
nike: {
Sales_count: 1008
Gewinn: 208
Sales_Value: 10008
🎜>
nike: {
sales_count: 2002
Gewinn: 204
sales_value:20004
} >}
Antwortinhalt:
Konvertieren Sie die aus der Datenbank abgerufenen Daten in Objekte und konvertieren Sie die Objekte dann mit gson direkt in JSON-Strings!
Nachdem Ihre SQL-Anweisung geschrieben wurde, ist alles, was Sie brauchen, ein großer Durchlauf des Datensatzes und zwei darin enthaltene Beurteilungsprozesse. Hast du nicht gesagt, dass es geschrieben wurde? Veröffentlichen Sie es und lassen Sie es ändern.
Und wie groß ist diese Menge? Wenn Sie ein Volumen von mehreren M oder sogar mehreren Dutzend oder Hunderten von M erstellen, ist die Übertragung allein langsam genug.
Hier liegt ein Problem vor, das heißt, der Schlüssel der Verkaufsdaten ist der Filialname, der nicht festgelegt ist, sodass die Implementierung sehr kompliziert sein wird.
Es wird empfohlen, eine geringfügige Änderung vorzunehmen. Dadurch wird die Komplexität erheblich verringert und das Sub-Array-Format im Inneren geändert in:
[
{
Geschäft: nike
sales_count:2002
Gewinn:204
sales_value:20004
},
{
sales_count:1505
Gewinn:216
sales_value:10077
},
...
]
Dann können Sie JavaBean so entwerfen, dass es Daten wie diese empfängt, und es dann mit dem Tool Object in jsonString konvertieren
Klassenergebnis {
Liste ts;
}
Klasse T {
String-Tag;
int Stunde;
Geschäfte auflisten;
class Store {
String-Store; int sales_count;
int profit;1. Der erste Schritt besteht darin, die Basisdaten der ersten Ebene abzufragen und List(T):
zu erhalten Wählen Sie einen bestimmten Tag und eine bestimmte Stunde aus der Tabelle aus;Die Logik ist klar und die Struktur ist nicht kompliziert, nur zwei Schichten.