2013-04-05 1 views
5

내 경우는 다음과 같습니다. 나는 3 outputtexts & 해당 inputtexts와 JSF 양식을 말할 수있다 : - inputtext1최대 절전 모드 데이터베이스 필드에 json 개체를 저장하는 방법

outputtext2 -

outputtext1을 inputtext2

outputtext3 - 현재 inputtext3

나는 backbean 방법 '저장'에서를 사용 hibernate 객체는 table1.field1, table1.field2, table1.field3 필드에 테이블에 기본 키 table1.id를 가진 table1을 넣는다.

테이블의 각 레코드에는 입력 텍스트에 값이 삽입되어 있습니다.

나는 다음과 같은 형태로, 데이터베이스에 저장 폼 데이터에 갈거야 어떻게 내 질문은 :

{ "outputtext1 : inputtext1", "outputtext2 : inputtext2" "outputtext3 :. inputtext3 "}

다음 구문 분석, 다시 가져오고 양식을 다시 빌드합니다. 양식 데이터를 JSON 개체로 조작하려고 생각하고 있습니다 ...하지만 Java + JSON에 익숙하지 않아 일부 지침이 유용합니다!

이것은 양식 동적 즉시 만들어줌으로써 어떤 예를 나타내는 예정된다. 간단한

+0

이것은 단지 문자열이며,'varchar'를 사용하십시오. JSON 시리얼 화기를 사용하십시오. –

+0

그래서 양식 데이터를 조작하는 방법에 대한 올바른 방향을 알고 있습니까? 양식이 동적이어서 양식 데이터의 표준 형식이 없습니다. – thanili

+0

표준 양식이 없으면 JSON 문자열을 생성한다고 가정합니다. 일단 가지고 있다면 varchar 필드에 저장하십시오. –

답변

4

왜 당신이 원하는 것이 https://code.google.com/p/json-simple/을 사용하여 권 해드립니다 JSON을 serialize/deserialize하여 데이터베이스로 직접 전송 하시겠습니까? 역 직렬화는 (안 것이다가) 문제의 원천이 될 수있는 자신의 문제와 여러 deserializations 있습니다.

당신은 주어진 개체의 속성과 필드를 저장 한 다음, Gson 같은 라이브러리의 도움으로, 기업에서 JSON을 생성해야합니다. 양식은 동적이기 때문에


업데이트

, 당신은 당신의 데이터를 보유 할 몇 가지 적응 엔티티 구조를 선택적으로 사용할 수 있습니다.

엔티티는 Map<String,String> 속성 또는 키 - 값 쌍이 포함 된 FieldRecord 엔티티 컬렉션을 가질 수 있습니다.

나는 데이터베이스의 JSON 복잡한 문제가 발생할 수 있기 때문에이, 특히 나중에 데이터를 조회해야하는 경우 좋습니다. 특정 필드가있는 레코드를보고하거나 찾으려면 JSON을 처리해야합니다. 이것은 단지 예일 뿐이며, 상황은 더욱 복잡해 질 수 있습니다.

+0

양식이 동적이 될 것이므로 표준 번호 나 유형의 입력 필드를 가지지 않을 것입니다. 이것은 단지 예시 일뿐입니다! – thanili

+0

@thanili 'Map '또는 연관 엔터티 목록을 사용하여 엔터티를 가질 수 있습니다. IMO 데이터베이스에 JSON을 저장하는 것은 특히 나중에 특정 필드에 대해 쿼리하려는 경우 처리하기가 매우 어려울 수 있습니다. 여전히 json을 사용하도록 설정 한 경우,이를 작성하여 VARCHAR 변수에 저장하십시오. – Gamb

+0

OK Gamb, 나는 너의 제안을 더 간단한 방법으로 점검 할 것이다. 사실 나는 다시로드 된 양식에 대해 이미 제출 된 값을 가져 오기 위해 데이터베이스를 쿼리해야합니다. 그래서 JSON 객체를 가져와 deserialize하고 구문 분석하고 양식 필드 ID와 비교하여 양식을 다시 작성해야합니다. 너무 많은 문제가있는 것 같아요. – thanili

0

, 당신은 JSON을 저장하는 테이블에 BLOB 유형 열이 필요하고 당신이 자바를 검색 할 때 당신은 단지 JSON을 디코딩 할 필요와 나는 매우 간단한

0

String 형태 다음 저장소로 변환 JSONObject. 그리고 당신을 다시 읽을 때, 아래와 같이 JSONObject로 다시 변환이

속성 이름과 같은

 JSONObject obj = new JSONObject(stringRepresentationOfJSON); 
-2

변화가 최대 절전 모드로 매핑 = "managementVlan"유형 = "문자열" 열 이름 = "ManagementVlan 65535 " 재산

변경 유형"= 길이가 "dB의 텍스트에

ALTER 테이블 EMPLOYEE ManagementVlan 텍스트를 수정; 문자열

문자열 finalVlanTrunk = managementVlanJsonArray.toString에

Conver 유럽 JSON();

값을 설정하고 저장하십시오.

관련 문제