2011年11月11日金曜日

[hibernate][環境構築]サンプルプログラムの作成

別掲の[hibernateの環境構築]ができている状態で、次の手順を実行する。

1. エンティティクラスのソースファイルを作成する。

    @Entity(name = "SAMPLE_SERVICE_USER")
    public class SampleServiceUser {

        /**
         * ユーザID
         */
        @Id
        @GeneratedValue
        @Column(name = "SAMPLE_SERVICE_USER_ID")
        private Integer sampleServiceUserId;

        public Integer getSampleServiceUserId() {
            return sampleServiceId;
        }

        public void setSampleServiceUserId(Integer sampleServiceUserId) {
            this.sampleServiceUserId = sampleServiceUserId;
        }

        /**
         * バージョン(楽観ロック用)
         */
        @Version
        @Column(name = "VERSION")
        private Integer version;

        public Integer getVersion() {
            return version;
        }

        public void setVersion(Integer version) {
            this.version = version;
        }

        /**
         * メールアドレス
         */
        @Column(name = "MAIL")
        private String mail;

        public String getMail() {
            return mail;
        }

        public void setMail(String mail) {
            this.mail = mail;
        }

        /**
         * パスワード
         */
        @Column(name = "PASSWORD")
        private String password;

        public String getPassword() {
            return password;
        }

        public void setPassword(String password) {
            this.password = password;
        }

        /**
         * ニックネーム
         */
        @Column(name = "NICKNAME")
        private String nickname;

        public String getNickame() {
            return nickame;
        }

        public void setNickname(String nickname) {
            this.nickname = nickname;
        }
    }

    上記はサンプル。
    @Entityアノテーションにより、クラスがエンティティであることを明示する。
    エンティティクラスに対応するテーブル名は、name属性で指定する。
    @Idアノテーションは、主キー(hibernateの場合はサロゲートキー推奨)に付与する。
    @GeneratedValueアノテーションは、IDを自動生成する場合に付与する。
    @Columnアノテーションにより、データベースのカラムに対応していること明示する。
    name属性には、データベース側のカラム名を記述する。
    @Versionアノテーションは、hibernateのバージョン番号による楽観ロックを使う場合に付与する。
    hibernateはデータベースに変更があるとversionを自動でインクリメントする。
    変更前後でversionの値が違う場合は、別のユーザによる変更があったものと見なし、エラーとする。(ロールバック)

2. 次のサンプルコードを動作させ、データが取得できることを確認する。

    サンプルコードを記述する前に、設定がなされていることを確認する。
    hibernate.cfg.xmlにエンティティクラスを読み込む設定を記述しておく必要がある。

    <mapping class="entity.SampleServiceUser" />

    また、データベースに何らかのデータを登録しておく必要がある。(動作確認のため)
    Javaのコードは、次の通り。

    // コンフィギュレーションを作成する
    Configuration config = new Configuration().configure();

    // セッションファクトリーを作成する
    SessionFactory sessionFactory = config.buildSessionFactory();

    // セッションを取得する
    Session session = sessionFactory.openSession();

    // ID=1のデータを取得する
    SampleServiceUser sampleServiceUser = (SampleServiceUser) session.get(
            SampleServiceUser.class, 1);

    SampleServiceUserが取得できていれば、hibernateが正常動作している。

0 件のコメント:

コメントを投稿