2013-04-05 24 views
5

私のケースは以下の通りです。私は3 outputtexts &対応inputtextsとJSFフォームが言うことができます持っている: - inputtext1jsonオブジェクトをハイバーネーションデータベースフィールドに格納する方法

outputtext2 -

outputtext1をinputtext2

outputtext3 - 現在inputtext3

私はbackbean方法 '保存' での使用hibernateオブジェクトは、テーブルtable1field1、table1.field2、table1.field3のフィールドにそれらをデータベースに格納するためのものです(hibernateオブジェクトは、主キーtable1.idを持つtable1と言うことができます)。

テーブルの各レコードには、入力テキストに値が挿入されています。

私は、次のような形式で、データベースに店舗フォームデータに行きますか私の質問は:

{ "outputtext1:inputtext1"、 "outputtext2:inputtext2" "outputtext3:。inputtext3 "}

を再度取得し、解析してフォームを再構築します。私はJSONオブジェクトとしてフォームデータを操作することを考えています...しかし、私は両方のJava + JSONに新しいですので、いくつかのガイドラインは本当に私にとって役に立ちます!

これは具体的な例です。フォームはダイナミックに進行し、オンザフライで作成されます。シンプル

+0

これは単なる文字列で、 'varchar'を使用します。 JSONシリアライザを使用します。 –

+0

フォームデータを操作する方法は正しいですか?フォームは動的なので、フォームデータの標準フォーマットはありません。 – thanili

+0

標準形式がない場合、私はあなたがJSON Stringを生成していると仮定しています。一度それを持っていれば、それをvarcharフィールドに格納します。 –

答えて

4

は、なぜあなたはしたいhttps://code.google.com/p/json-simple/を使用してお勧めJSONをシリアル化/逆シリアル化してデータベースに直接送信しますか?デシリアライゼーションには独自の問題があり、複数のデシリアライズではありません)が問題の原因となります。

フィールドを特定のエンティティから属性として保存してから、Gsonのようなライブラリの助けを借りてエンティティからJSONを生成する必要があります。


更新

フォームは動的であるので、あなたのデータを保持するために、いくつかの適応エンティティの構造を使用することができます。

エンティティは、Map<String,String>属性か、キーと値のペアを含むFieldRecordエンティティのコレクションを持つことができます。

データベース内のJSONが複雑な問題を引き起こす可能性があるため、特に後でそのデータをクエリする必要がある場合には、これをお勧めします。 JSONを処理して、特定のフィールドを持つレコードを報告するか検索する必要があります。これは単なる例であり、物事はより複雑になる可能性があります。

+0

フォームは動的になるので、標準の数値またはタイプの入力フィールドは持たないでしょう。これはほんの一例です! – thanili

+0

@thanili 'Map 'または関連エンティティのリストを持つエンティティを持つことができます。 IMOデータベースにJSONを格納することは、特に特定のフィールドについて後で照会する場合には、処理が非常に難しい場合があります。それでも、jsonを使用するように設定されている場合は、作成してVARCHAR変数に格納します。 – Gamb

+0

OKガンブ、私はあなたの提案をより簡単な方法でチェックします。実際には、私は再ロードされたフォームのためにすでに提出された値をフェッチするためにデータベースを照会する必要があります。 JSONオブジェクトを取得して逆シリアル化し、構文解析し、フォームフィールドIDと比較し、フォームを再構成する必要があります:) – thanili

0

は、あなたは、JSONを格納するテーブル内のBLOB型の列を必要とし、あなたはJavaでそれを取得するとき、あなただけのJSONをデコードする必要があると私はその非常に単純な

0

JSONObjectStringに変換して保存します。 そして、あなたのそれをリードバックするとき、以下のようにJSONObjectに戻ってそれを変換します。この

プロパティ名などの

 JSONObject obj = new JSONObject(stringRepresentationOfJSON); 
-2

変更休止状態マッピング=「managementVlan」タイプ=「文字列」 列名= "ManagementVlan

ALTERテーブルEMPLOYEEがManagementVlanテキストを変更DB内のテキストを "長さ=" 65535" 性

変化型。ストリング

ストリングfinalVlanTrunk = managementVlanJsonArray.toStringに

CONVER JSON()。

値を設定して保存します。

関連する問題