Upload
normalian
View
1.176
Download
3
Embed Size (px)
DESCRIPTION
Citation preview
Windows Azure 上の WebLogic Server 12c から
JPA を利用した O/R マッピング to SQL Database
もくじ
① SQL Database インスタンスの作成
② JDBC ドライバの配置
③データソースの設定
④ persistence.xml の配置
⑤ EJB ロジックの記載
Windows Azure 上に以下のデータベースインスタンスを作成しておく
もくじ
① SQL Database インスタンスの作成
② JDBC ドライバの配置
③データソースの設定
④ persistence.xml の配置
⑤ EJB ロジックの記載
http://msdn.microsoft.com/en-us/sqlserver/aa937724 にアクセスして JDBC ドライバを取得する
展開したアーカイブから sqljdbc4.jar を抜き出し C:¥Oracle¥Middleware¥Oracle_Home¥wlserver¥server¥lib に配置する
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 を以下を参考に編集
もくじ
① SQL Database インスタンスの作成
② JDBC ドライバの配置
③データソースの設定
④ persistence.xml の配置
⑤ EJB ロジックの記載
Services > Data Sources を選択
後で使うので JNDI Name を覚える
MS SQL Server を選択
画像を参考にドライバタイプを選択
グローバルトランザクションはどうせ使えないので外す
SQL Database の情報を追記
JDBC ドライバの jar が上手く配置出来ていないと以下のエラーが出る
データソースを結び付けるサーバを選択するので、当然チェックを追加
この辺まで来ればデータソースの設定完了
もくじ
① SQL Database インスタンスの作成
② JDBC ドライバの配置
③データソースの設定
④ persistence.xml の配置
⑤ EJB ロジックの記載
<?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 を以下の例を参考に作成
もくじ
① SQL Database インスタンスの作成
② JDBC ドライバの配置
③データソースの設定
④ persistence.xml の配置
⑤ EJB ロジックの記載
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 の作成例
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 マッピングのロジック例