>  기사  >  데이터 베이스  >  mysql-데이터베이스에서 읽은 데이터에서 다중 계층 중첩 json을 조립하는 방법

mysql-데이터베이스에서 읽은 데이터에서 다중 계층 중첩 json을 조립하는 방법

WBOY
WBOY원래의
2016-08-20 08:47:584013검색

mysqljson 알고리즘 데이터 구조 java

데이터베이스 필드는 그림

에 표시된 것과 같습니다.

세 가지 기본 키인 day, hour, store는 다음에서 매장의 세부 정보를 확인할 수 있음을 의미합니다. 특정 날짜, 특정 시간에 판매 현황을
누르면 요일, 시간, 매장 데이터가 반복될 수 있지만 세 필드로 구성된 데이터는 고유합니다.
java mysql jdbc를 사용하기 위해 필수(다른 데이터베이스 연결 기술도 사용 가능) 단, 언어는 java여야 합니다.

다음 형식의 json을 구성하기 위해 데이터베이스를 어떻게 읽어야 하나요?

저는 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 나열;
}

티 클래스 {

문자열의 날;

시간;mysql-데이터베이스에서 읽은 데이터에서 다중 계층 중첩 json을 조립하는 방법 매장 나열;

}
클래스 스토어 { 현악기 가게;

int sales_count;

int 이익;

int sales_value;

}

SQL 쿼리의 경우 하위 쿼리가 너무 많으면 큰 SQL을 사용하지 않는 것이 좋습니다. 하위 쿼리가 너무 많으면 큰 SQL의 효율성이 기하급수적으로 느려집니다. 간단한 SQL을 실행하려면 java 루프를 사용하세요.

1. 첫 번째 단계는 첫 번째 레이어의 기본 데이터를 쿼리하고 List(T):

를 얻는 것입니다. 표에서 별도의 요일, 시간을 선택하세요.

  1. 두 번째 단계는 List(T)를 반복하고 요일+시간에 따라 루프에 매장 정보를 입력하는 것입니다. T에서 매장, 판매량, 수익, 판매량을 선택합니다. 여기서 일 = ? 및 시간 =?;

논리도 명확하고 구조도 복잡하지 않고 2겹으로 구성되어 있습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.