0

任意のデータを取得して MySQL データベースに格納する Java プログラムを作成したいと考えています。データは後で再度読み取ることができ、元のオブジェクト構造が再構築されます。

背景は、完了するために電子メールの確認が必要なフォーム用の汎用ツールが必要だということです。そう:

  1. ユーザーがフォームに記入し、
  2. データは上記のように保存されますが、
  3. データセットを識別する特定の UUID を含むリンクを含む電子メールがユーザーに送信されます。
  4. ユーザーがリンクをクリックし、
  5. サーブレットは、リンク内の UUID を使用して格納されたデータをロードし、データを処理します。

String/String または String/int ペアだけでなく、任意のデータに対してこれが機能することを望みます。ツールにデータを渡す手段として、org.apache.common.beanutils の LazyDynaBean を使用することを考えていました。

問題は、プリミティブだけでなく、値が Bean (Java Bean に制限しましょう) の場合でも、そのようなものをシリアル化する良い方法はありますか?

データベーステーブルは次のようになると思っていました

emailVerification
| ID | UUID | validUntil |

emailVerificationData
| ID | emailVerification.ID | name | index | key | value | className |

それはまったく実現可能ですか?DynaBean をこの構造に格納およびロードする方法について、誰かが私を正しい方向に向けることができますか? または、私が見逃した代替案はありますか?

本当にありがとう。

4

1 に答える 1

0

Bean を XML との間でシリアライズ/デシリアライズし (以下の例を参照)、文字列をデータベースに格納できます。

これは役に立ちますか?

    public static String beanToXMLString(final Object bean) {
    String returnvalue = null;
    final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    final XMLEncoder xmlEncoder = new XMLEncoder(new BufferedOutputStream(byteArrayOutputStream));
    xmlEncoder.writeObject(bean);
    xmlEncoder.close();
    returnvalue = byteArrayOutputStream.toString();
    return returnvalue;
}

public static Object beanFromXMLString(final String xml) {
    Object returnvalue = null;
    final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(xml.getBytes());
    final XMLDecoder xmlDecoder = new XMLDecoder(new BufferedInputStream(byteArrayInputStream));
    returnvalue = xmlDecoder.readObject();
    xmlDecoder.close();
    return returnvalue;
}
于 2012-01-25T13:14:08.730 に答える