2012-01-16 9 views
0

私は最近、Javaサーブレットでバックエンドプログラミングを開始し、イントラネットWebアプリケーション用のデータにアクセスしました。HibernateにPOJOが必要ですか?

データベースのストアドプロシージャにクエリ名を渡し、その結果をJSONのチャンクとして返すサーブレットを作成しました。私はWebappsのAJAX呼び出しからこれを使用します。私のWebアプリケーションは最大約100人のユーザーしか持っていません - この数字は次の年をかけてゆっくりと増加します。

すべてのAJAX呼び出しでJDBC接続を開いたり閉じたりするのではなく、接続プーリングにhibernateを使用したいと思います。しかし、私が行ってきたそれぞれのHibernateチュートリアルは、gettersとsetterを使って、データをマッピングするPOJOの作成から始めます。私は実際にPOJOメソッドを全く使用しません。現在、stringbuilderを使用してresultsetオブジェクトからJSONを作成していますが、なぜそれを変更する必要があるのか​​わかりません。

基本的には、JDBC接続を作成するのではなく、何らかのハイバネート接続プールオブジェクトを呼び出すようにサーブレットを変更するだけです。

私はこの目的のために休止状態を使用する必要がありますか(POJOなしの接続プーリングのみ)。もしそうなら誰もがこれに焦点を当てたチュートリアルを知っていますか?そうでない場合、私はこれに何か他のものを使用すべきでしょうか?

私が言ったように、私はかなりサーバー側のプログラミングに新しいですので、私はいくつかの基本的な概念を欠落している可能性があります。どんな方向にも感謝しています。

+0

なぜehcache/etcのようなキャッシュを使用するだけではないのですか? –

答えて

1

HibernateはObject-relational mappingのツールであり、Javaオブジェクトをテーブルにマッピングするのに適しています。 JDBCを使用してクエリを実行し、ビルダーを使用してSQL結果セットをJSONに変換したい場合は、Hibernateを必要としません。接続プールには必要ありません。

Hibernateではなく接続プール機能を提供することに重点を置いているDbcpまたは3cp0のようなツールがあります。

+0

ありがとうございました。私はそれを別々に実装できるかどうか分からなかった。 Dbcpとc3p0をチェックアウトした後、私はtomcat 7.0+ jdbc-poolに同梱されている別のものを見つけました。これは最高の統計を持つようです。私は今それで行くつもりです。 –

2

Hibernateはオブジェクト・リレーショナル・マッピング用です。オブジェクトをテーブルに格納したり、オブジェクトをテーブルから復元することができます。接続プールは提供されません。実際には、あなたが提供する接続プールの消費者になります。

一般的なJDBC接続プールの1つはC3P0です。

1

@ user1120185 Ernest Friedman-Hillの回答が追加されました。あなたの質問の直接答えははいです。あなたは休止状態にpojosが必要です。理由はHibernateがデータベースのテーブル列を使ってそれらのPOJOをマップするからです。

はい、すべてのプロパティをJavaオブジェクトにマップする必要はありません。オプションのJavaオブジェクトをハイバネートテーブルにマップすることができます。

関連する問題