20
Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

Windows Azure 上の WebLogic Server 12c から

JPA を利用した O/R マッピング to SQL Database

Page 2: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

もくじ

① SQL Database インスタンスの作成

② JDBC ドライバの配置

③データソースの設定

④ persistence.xml の配置

⑤ EJB ロジックの記載

Page 3: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

Windows Azure 上に以下のデータベースインスタンスを作成しておく

Page 4: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

もくじ

① SQL Database インスタンスの作成

② JDBC ドライバの配置

③データソースの設定

④ persistence.xml の配置

⑤ EJB ロジックの記載

Page 6: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

展開したアーカイブから sqljdbc4.jar を抜き出し C:¥Oracle¥Middleware¥Oracle_Home¥wlserver¥server¥lib に配置する

Page 7: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

IF NOT DEFINED MW_HOME ( IF NOT DEFINED WL_HOME ( echo MW_HOME or WL_HOME is not set IF DEFINED USE_CMD_EXIT ( EXIT 1 ) ELSE ( EXIT /B 1 ) ) ) IF NOT DEFINED MW_HOME set MW_HOME=%WL_HOME%¥.. FOR %%i IN ("%MW_HOME%") DO SET MW_HOME=%%~fsi CALL "%MW_HOME%¥oracle_common¥common¥bin¥commEnv.cmd" set WEBLOGIC_CLASSPATH=%WEBLOGIC_CLASSPATH%;%WL_HOME%¥server¥lib¥sqljdbc4.jar

C:¥Oracle¥Middleware¥Oracle_Home¥wlserver¥common¥bin¥commEnv.bat を以下を参考に編集

Page 8: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

もくじ

① SQL Database インスタンスの作成

② JDBC ドライバの配置

③データソースの設定

④ persistence.xml の配置

⑤ EJB ロジックの記載

Page 9: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

Services > Data Sources を選択

後で使うので JNDI Name を覚える

MS SQL Server を選択

Page 10: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

画像を参考にドライバタイプを選択

Page 11: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

グローバルトランザクションはどうせ使えないので外す

Page 12: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

SQL Database の情報を追記

Page 13: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

JDBC ドライバの jar が上手く配置出来ていないと以下のエラーが出る

Page 14: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

データソースを結び付けるサーバを選択するので、当然チェックを追加

Page 15: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

この辺まで来ればデータソースの設定完了

Page 16: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

もくじ

① SQL Database インスタンスの作成

② JDBC ドライバの配置

③データソースの設定

④ persistence.xml の配置

⑤ EJB ロジックの記載

Page 17: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="em" transaction-type="JTA"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <jta-data-source>JDBC_Data_Source</jta-data-source> </persistence-unit> </persistence>

EJB プロジェクトの META-INF/persistence.xml を以下の例を参考に作成

Page 18: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

もくじ

① SQL Database インスタンスの作成

② JDBC ドライバの配置

③データソースの設定

④ persistence.xml の配置

⑤ EJB ロジックの記載

Page 19: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(schema = "dbo", name = "Eroge") public class Eroge implements Serializable { @Id @Column(name = "Id") private int id; //getter/setter、他のプロパティ略

テーブルと O/R マッピングする Entity の作成例

Page 20: Windows Azure 上の WebLogic Server 12c から JPA を利用した O/R マッピング to SQL Database

mport javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Named @Stateless public class IndexLogic { @PersistenceContext private EntityManager em; public List<Eroge> doLogic() { System.out.println("!!!! do logic"); List<Eroge> resultList = em.createQuery("select k from Eroge k", Eroge.class).getResultList(); return resultList; } }

O/R マッピングのロジック例