집 >데이터 베이스 >MySQL 튜토리얼 >mysql-데이터베이스에서 읽은 데이터에서 다중 계층 중첩 json을 조립하는 방법
mysqljson 알고리즘 데이터 구조 java
데이터베이스 필드는 그림
에 표시된 것과 같습니다.
세 가지 기본 키인 day, hour, store는 다음에서 매장의 세부 정보를 확인할 수 있음을 의미합니다. 특정 날짜, 특정 시간에 판매 현황을
누르면 요일, 시간, 매장 데이터가 반복될 수 있지만 세 필드로 구성된 데이터는 고유합니다.
java mysql jdbc를 사용하기 위해 필수(다른 데이터베이스 연결 기술도 사용 가능) 단, 언어는 java여야 합니다.
저는 jdbc를 직접 사용하고 다층 while 루프를 사용하여 이 형식을 구성하지만 매우 비효율적입니다. 데이터 양이 많으면 속도가 매우 느려집니다
효율적인 솔루션을 찾고 있습니다
다단계 중첩 형식
{
2016-07-16:
{
1:
[
nike:{
sales_count:1000
이익:200
s ales_value:10000
~
이익 : 201 sales_value : 10001
}
> nike : { sales_count : 1002 이익 : 203
sales_value : 10004
adidas :
이익:206
매출액:10007
}
]
...
2016-07-17:
{
1:
> ~
나이키:{
판매량:2002
이익:204
매출액:20004
}
adidas:
{
매출액:1505
이익:216
매출액:10077
}
]
......
}
답글 내용:
데이터베이스에서 가져온 데이터를 객체로 변환한 후 gson을 사용하여 객체를 json 문자열로 직접 변환하세요!
SQL 문이 작성된 후 필요한 것은 레코드 세트에 대한 대규모 순회와 그 안에 있는 두 가지 판단 프로세스뿐입니다. 썼다고 하지 않았나요? 게시하고 수정하도록 하세요.
그리고 이 수량은 얼마나 되나요? 몇 M, 심지어는 수십, 수백 M의 볼륨을 생성한다면 전송만으로도 충분히 느려질 것입니다.
여기서 문제가 발생합니다. 즉, 판매 데이터의 핵심은 매장 이름이며, 고정되지 않아 구현이 매우 복잡해집니다.
약간 수정하면 복잡성이 많이 줄어들고 내부 하위 배열 형식도 다음과 같이 변경되는 것이 좋습니다.
[
{
매장: 나이키
판매량:2002
이익:204
매출액_값:20004
},
{
판매량:1505
이익:216
sales_value:10077
},
...
]
그런 다음 JavaBean이 이와 같은 데이터를 수신하도록 설계한 다음 Object 도구를 사용하여 이를 jsonString으로 변환할 수 있습니다
수업 결과 {
TS 나열;
}
티 클래스 {
문자열의 날;시간; 매장 나열;
}int sales_value;
}SQL 쿼리의 경우 하위 쿼리가 너무 많으면 큰 SQL을 사용하지 않는 것이 좋습니다. 하위 쿼리가 너무 많으면 큰 SQL의 효율성이 기하급수적으로 느려집니다. 간단한 SQL을 실행하려면 java 루프를 사용하세요.
1. 첫 번째 단계는 첫 번째 레이어의 기본 데이터를 쿼리하고 List(T):
를 얻는 것입니다.
표에서 별도의 요일, 시간을 선택하세요.
논리도 명확하고 구조도 복잡하지 않고 2겹으로 구성되어 있습니다.