タイガー!タイガー!じれったいぞー!(SE編)

AS400, Java, JavaEE, JSF等の開発、習慣など。日々の気づきをまとめたブログ(備忘録)

【Glassfish】PostgreSQLコネクション・プール作成(NetBeans自動生成編)

NetBeansからglassfishへPostgresのデータソースの自動的生成を試してみました。

(1) データベース接続情報追加

まずは、「サービス」の中のデータベースより、PostgreSQLのDBを参照できるようにします。

f:id:no14141:20150214092240j:plain

PostgreSQLJDBCドライバーのパスを指定します。

f:id:no14141:20150214092248j:plain

接続情報を入力し、「接続をテスト」ボタンにて、接続確認を実施。

f:id:no14141:20150214092255j:plain

f:id:no14141:20150214092319j:plain

f:id:no14141:20150214092327j:plain

オッケー! NetBeansからlocalhost上のPostgreSQLを参照できるようになりました!

f:id:no14141:20150214092335j:plain

(2) 持続性ユニット(persistence.xml)の作成

ファイル新規作成より、「持続性」→「持続性ユニット」を選択します。

f:id:no14141:20150214092344j:plain

f:id:no14141:20150214092357j:plain

下記のソースが作成されました。
実際は、ここにJPA設定を記述していくことになるのでしょう。

persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
  <persistence-unit name="metaldbPU" transaction-type="JTA">
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="javax.persistence.schema-generation.database.action" value="create"/>
    </properties>
  </persistence-unit>
</persistence>

(3)Entityクラスの作成

新規作成にて、データベースからエンティティ・クラスを選択します。

f:id:no14141:20150214092406j:plain

ここで、データ・ソースを選択することになります。
まだGlassfishでデータ・ソースを準備していなくても、「新しいデータ・ソース」を選択できました。

f:id:no14141:20150214092414j:plain

f:id:no14141:20150214092424j:plain

使用可能な表より、Entityクラス作成対象のテーブルを追加します。

f:id:no14141:20150214092433j:plain

f:id:no14141:20150214092442j:plain

f:id:no14141:20150214092450j:plain

(4) 確認

(3)まで作業を行った後、Mavenビルド後、アプリを実行したところ、「glassfish-resources.xml」というファイルが作成されていました。

f:id:no14141:20150214092501j:plain

glassfish-resources.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
    <jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="org.postgresql.ds.PGSimpleDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="post-gre-sql_metaldb_postgresPool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.DataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false">
        <property name="serverName" value="127.0.0.1"/>
        <property name="portNumber" value="5432"/>
        <property name="databaseName" value="metaldb"/>
        <property name="User" value="postgres"/>
        <property name="Password" value="********"/>
        <property name="URL" value="jdbc:postgresql://127.0.0.1:5432/metaldb"/>
        <property name="driverClass" value="org.postgresql.Driver"/>
    </jdbc-connection-pool>
    <jdbc-resource enabled="true" jndi-name="jdbc/metalDS" object-type="user" pool-name="post-gre-sql_metaldb_postgresPool"/>
</resources>


なお、glassfish管理コンソールを起動し、JDBCを確認してみると、Connection Poolとリソースが作成されていることを確認できました。

f:id:no14141:20150214092508j:plain

f:id:no14141:20150214092517j:plain

NetBeansGlassfishはうまい具合に連携してくれて、とても使いやすいですね!