私は自分のデータベースに接続しようとしており、EJBとJPAを使用しています。私は最近、これらの技術をやっているので、私はいくつかの問題をこの時点ですべて理解しています:) JPAを使うためにはpersistence.xmlが必要であることは知っています。それは私が知っているデータベースに接続する方法を設定するファイルです。しかし、それを行う方法は複数あるようです。JDBCリソースとJDBC接続プールを取り巻く混乱Glassfish
usernameやdatabase、passwordなどのプロパティをpersistence.xmlファイルやGlassfishに定義するのはどういう違いがありますか?もしあれば利点/欠点。
私が投稿した画像の下に、JDBCリソースとJDBC接続プールがあります。私は両者の用語について混乱している。なぜJDBCリソースにユーザー名、データベース、パスワードなどのプロパティを追加しないのですか?誰かがその違いとその意味を説明できますか?
JDBCリソース
A JDBCリソース(データソース)データベースに接続 の手段をアプリケーションに提供します。通常、管理者は ドメインにデプロイされたアプリケーションによってアクセスされるデータベースごとにJDBC リソースを作成します。 (ただし、複数のJDBCリソースが データベース用に作成することができます。) http://download.oracle.com/docs/cd/E19316-01/820-4335/ablih/index.html
私はそれが奇妙な私たちはプールではなく、リソースで、このような性質を追加すると思いますが、私はおそらく概念を誤解します。あなたは、コンテナを作成することができ、「JDBC接続プール」で
したがって、いつpersistence.xmlにプロパティを設定しますか? Java SEでアプリケーションを使用しているときは?しかしそれ以外の場合は本質的に同じプロパティなので、persistence.xmlで定義できますか? – LuckyLuke
はい、プレーンなバニラJava SEアプリケーションでのみ意味があります(たとえば、JPAプロジェクトの単体テストを行う場合など)。 Java EEコンテナでは、コンテナ管理のデータソースを使用してJTAを実際に使いたいので、EJBがトランザクションコンテキストでうまく機能できるようにします。通常、JPAプロジェクトからクラスを継承し、JTAになるようにトランザクションタイプをオーバーライドする、コンテナのJNDI名を指し示す ''と一緒にWebプロジェクトに別の 'persistence.xml'を提供します管理されたデータソース。 –
BalusC
Okey、それから私はそれを理解し始めると思う:) – LuckyLuke