Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JPA入門: はじめてのJava EEアプリケーション開発シリーズ: 第4回

4,001 views

Published on

JPA入門: はじめてのJava EEアプリケーション開発シリーズ: 第4回

JPA (Java Persistence API)はJavaアプリケーションのデータベースアクセスをシンプルに、効率良く実装するためのO/Rマッピングの仕様です。JPAの特長、O/Rマッピング、EJBからの JPAの利用方法などを解説します。

日本オラクル株式会社  オラクルユニバーシティ 岡田 大輔

Published in: Technology
  • Be the first to comment

JPA入門: はじめてのJava EEアプリケーション開発シリーズ: 第4回

  1. 1. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | JPA 入門 はじめてのJava EEアプリケーション開発シリーズ 第4回: 日本オラクル株式会社 オラクルユニバーシティ 岡田 大輔 2014年10月29日 1
  2. 2. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 2
  3. 3. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Java Platform, Enterprise Edition おさらい •Java SE をベースにした企業システム向けのフレームワーク –オープンなWebシステムの構築を支える機能群の標準仕様 •コミュニティ主導のエンタープライズ・ソフトウェア標準 •コンポーネント仕様とサービスアクセスのための各種APIを規定 –移植性(Write Once Run Anywhere を担保) –Oracle などのベンダーは、Java EE に準拠した実装としてアプリケーション・ サーバーを提供 •Oracle WebLogic Server •GlassFish 3
  4. 4. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Java EE 6 の主な標準仕様 おさらい 標準仕様 開発領域 特徴 JSF 2.1 Webアプリケーション •リッチなユーザインタフェースの効率的な開発を実現する Webアプリケーション・フレームワーク Servlet 3.0 •冗長な設定・コード記述の削減により開発生産性を向上 •非同期ServletによるAjax対応 EJB 3.1 ビジネスロジック •冗長な設定・コード記述の削減により開発生産性を向上 •より柔軟な制御機能の追加 JPA 2.0 永続化ロジック •ORマッピングフレームワーク JAX-RS Webサービス •容易なサービス公開を実現するWebサービス標準仕様 CDI 全領域 •レイヤ間の疎結合化による柔軟性を向上するDIフレームワー ク標準仕様 4
  5. 5. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | WebLogic Server Webアプリケーション プレゼンテーション ビジネス・ロジック 永続化ロジック これから作成するアプリケーション Product Integer id; String productName; Integer price; Integer units; 開発環境 開発・ デプロイ ProductEJB List<Product> getAllProducts() { } void create(Product entity); void remove(Product entity); void edit(Product entity); @Named ProductController List<Product> list; String search() { } String create() { } String delete() { } String update() { } ProductBean List<Product> list; String search() { } String create() { } String delete() { } String update() { } search.xhtml 検索 list.xhtml 一覧 index.xhtml メニュー create.xhtml 作成 update.xhtml 更新 delete.xhtml 削除 第2回で説明しました 第3回で説明しました 第4回(今回)説明します 5
  6. 6. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 今回作成するアプリケーション index.xhtml (メニュー) <p>商品管理</p> <h:form> 商品の表示 <h:commandButton value="表示" action="#{productBean.toList}" /> </h:form> ProductBean @Inject ProductEJB productEJB; public List<Product> getList() { return productEJB.findAll(); } public String toList() { return "list"; } public String toIndex() { return "index"; } list.xhtml (一覧) <p><h:outputText value="商品一覧: " /></p> <h:dataTable value="#{productBean.list}" var="c” border="1"> <h:column> <f:facet name="header"> <h:outputText value="商品番号" /> </f:facet> <h:outputText value="#{c.id}" /> </h:column> </h:dataTable> <h:form> <h:commandButton value="戻る” action="#{productBean.toIndex}" /> </h:form> Product @Entity Public class Product { @Id private Integer id; private Date creationDate; private String description; private Date modificationDate; private Integer price; ProductEJB @PersistentContext EntityManager em; private List<Product> findAll() { return em.createNamedQuery ("Product.findAll") .getResultList(); } JPA エンティティ 6
  7. 7. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | JPA(Java Persistence API)とは? 7
  8. 8. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | JPA (Java Persistence API)とは? •JPA 2.0は Java EE 6 で使用可能な標準ORマッピング・フレームワーク –ORマッピング … JavaのオブジェクトとRDBのデータをマッピングするしくみ –Java SE 環境でも Java EE 環境でも使用可能 •アプリケーション管理の永続性(Java SE / Java EE) •コンテナ管理の永続性 (Java EE) 8 データベース Java オブジェクト ORマッピング(自動で相互変換) アプリケー ション 参照 挿入 更新 削除
  9. 9. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | public static void main(String[] args) { EntityManager em = Persistence.createEntityManagerFactory("db") .createEntityManager(); Employee emp = em.find(Employee.class, 100); System.out.println(emp); em.close(); } JDBCとJPA(ORマッピング) 9 public static void main(String[] args) { try (Connection con = DriverManager.getConnection ( "jdbc:oracle:thin:@localhost:1521:xe", "HR", "hr"); Statement stm = con.prepareStatement( "SELECT * FROM Employees e WHERE e.EMPLOYEE_ID = ?"); ) { stm.setInt(1, 100); ResultSet rSet = stm.executeQuery(); if (rSet.next()) { Employee emp = new Employee(); emp.setEmployeeId(rSet.getLong("EMPLOYEE_ID")); emp.setLastName(rSet.getString("LAST_NAME")); emp.setFirstName(rSet.getString("FIRST_NAME")); emp.setEmail(rSet.getString("EMAIL")); emp.setPhoneNumber(rSet.getString("PHONE_NUMBER")); emp.setHireDate(rSet.getDate("HIRE_DATE")); emp.setJobId(rSet.getString("JOB_ID")); emp.setSalary(BigDecimal.valueOf(rSet.getLong("SALARY"))); emp.setCommissionPct(BigDecimal .valueOf(rSet.getLong("COMMISSION_PCT"))); emp.setDepartmentId(BigDecimal .valueOf(rSet.getLong("DEPARTMENT_ID"))); System.out.println(emp); } } catch (SQLException e) { e.printStackTrace(); } } JDBC (Java SE 7 try-with-resources) を使ったデータベースアクセス JPAを使ったデータベースアクセス JPAでは、エンティティとRDBとのデータ変換を EntityManager APIで行うため、エンティティか らDBアクセスロジックが切り離される (大幅なコード削減)
  10. 10. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | JPAの構成要素 Persistence Context EntityManager Persistent Unit (persistence.xml) EntityManagerFactory Entity Entity Entity Entity Entity データベース 決定 生成 Persistence Unitの設定に基づいて EntityManagerのインスタンスを生成する ファクトリクラス エンティティの操作(CRUD)を 行うためのAPIを提供 10 データソースやEntityManagerのトラン ザクション・タイプなどを指定
  11. 11. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 永続性ユニット •persistence.xml によって定義される永続化のための構成情報 –永続性ユニットの名前、トンランザクション・タイプ –永続性プロバイダ –データベース接続設定 (Java EEアプリケーションの場合はデータソース名) –永続性ユニットが管理するエンティティクラス 11 TIPS: 永続性ユニットのトランザクション・タイプ(transaction-type) EntityManagerがJTAトランザクションを使用するか、リソース・ローカル・トランザク ションを使用するかを指定 (Java EE環境ではJTAがデフォルト、Java SE環境ではRESOURCE_LOCALがデフォルト)
  12. 12. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | persistence.xml : 例 12 persistence.xml <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" 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_2_0.xsd"> <persistence-unit name="prodMgmtPU" transaction-type="JTA"> <jta-data-source>jdbc/default</jta-data-source> <exclude-unlisted-classes>false</exclude-unlisted-classes> <properties/> </persistence-unit> </persistence> Java EE アプリケーションでは transaction-typeはJTAを指定 データベースに接続するためのデータソース のJNDI名を指定 (データソースはWebLogic Serverで設定する)
  13. 13. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | WebLogic Server データソース おさらい: アプリケーションのデータベース接続 データソース(接続プール)を利用 JNDI デプロイ時にバインド デプロイ時に 初期容量まで接続 JPA アプリケーション 接続オブジェクト 取得 JNDIルックアップ Entity オブジェクト persistence.xml <jta-data-source /> EntityManager PersistenceContext 接続プール TIPS: アプリケーション・サーバーが提供する データベース接続サービス(データソース) を利用 13
  14. 14. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | おさらい: データソースの設定 (1) 14 データソースのJNDI名は任意 の文字列を指定できます 非XAドライバ(Type 4)を選択して おくとNetBeansでの追加設定を省 けます
  15. 15. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | おさらい: データソースの設定 (2) 15 トランザクション・オプションは デフォルト設定のままでOKです 次のページで作成指定する場合は データベース名: は任意で指定で きます
  16. 16. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | おさらい: データソースの設定 (3) 16 JDBC URLで指定したデータベース を作成する場合は、プロパティ: に 「create=true」を追記します
  17. 17. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | おさらい: データソースの設定 (4) と確認 17 JDBCデータ・ソースの対象を指定 します データ・ソースがデプロイされて いると[モニタリング]-[統計]タブに インスタンスの行が表示されます
  18. 18. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | エンティティ・クラス •永続化されるデータをあらわすクラス –EntityManagerによって管理される –POJO(Plain Old Java Object)として実装される •クラスには @Entity 注釈を指定 •永続ストアのキー(主キー)に関連付けられた一意のIDを持つ(@Id注釈) •エンティティの要素(POJOのフィールド)へのアクセサ・メソッド –JPQLなどを使って問い合わせ可能 18
  19. 19. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | エンティティとデータベースの関係 ID (PK) PRODUCTCODE PRODUCTNAME PRICE CREATION_DATE 1 P0001 商品01 200 2014-10-29 2 P0002 商品02 50 2014-10-29 3 P0003 商品03 500 2014-10-29 4 P0004 商品04 150 2014-10-29 Product private Integer Id private String productCode private String productName Private Integer price private Date creationDate public Product () public getXXX() public setXXX() PRODUCTS ID INTEGER [PK] PRODUCTCODE VARCHAR(10) [NOT NULL] PRODUCTNAME VARCHAR(40) PRICE INTEGER CREATIONDATE DATE <<Product>> id: 1 <<Product>> id: 3 クラスと表 インスタンスと列 19
  20. 20. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | エンティティ・クラスの構造 20 Product.java import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Temporal; import javax.persistence.TemporalType; @Entity public class Product implements Serializable { @Id private Integer id; private String productCode; private String productName; private Integer price; @Temporal(TemporalType.TIMESTAMP) private Date creationDate; public Product() { } // … エンティティ・クラス名は 表名と同じ 主キー フィールド名は 表の列名と同じ 時刻(日付)型のマッピング Javax.persistence.* パッケージをインポート 引数なしのコンストラク タ
  21. 21. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | データベースからのエンティティ・クラスの作成 (1) 既存のデータベース表からエン ティティを定義する場合は、 [新規ファイル] – [持続性] – [データベースからのエンティ ティ・クラス]を選択します エンティティ・クラスは[新規 ファイル] – [持続性] – [エンティ ティ・クラス]を選択して作成 することもできます 21
  22. 22. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | データベース表からのエンティティの作成 (2) 22 スキーマを指定します マッピングする表を選択します
  23. 23. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | データベース表からのエンティティの作成 (3) 23 クラス名やパッケージ を必要に応じて指定し ます
  24. 24. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | エンティティ・クラスのあれこれ (1) 主キー •すべてのエンティティは主キーを持つ必要がある –エンティティ・インスタンスを一意に識別するフィールド •@Id注釈で指定 •主キーは生成計画を指定して自動生成も可能 –GenerationType.AUTO –GenerationType.IDENTITY … DBのID列を指定 –GenerationType.SEQUENCE … DBの順序を指定 –GenerationType.TABLE … ID生成用の表を指定 24 Product.java @Id @SequenceGenerator(name = "prodSeq", sequenceName = "PROD_SEQ", allocationSize = 50) @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "prodSeq") private Integer id;
  25. 25. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | エンティティ・クラスのあれこれ (2) マッピングのオーバーライド •エンティティ・クラスとフィールドはデータベースの表と列にマッ ピングされる –エンティティの名前とデータベースでの名前が同じであるとみなされる(デ フォルト・マッピング) –名前が異なる場合は、注釈を使用してマッピングをオーバーライド可能 25 クラス名と表名のマッピングは @Table注釈で指定します フィールド名と列名のマッピングは @Column注釈で指定します Product.java @Entity @Table(name = "EMP") public class Employee { @Column (name = "EMP_NAME") private String employeeName; // … }
  26. 26. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | エンティティ・クラスのあれこれ (3) 時刻をもつフィールド •エンティティで時刻(java.util.Dateやjava.util.Calndar )を持つフィール ドを扱う場合は、@Temporal注釈でデータベース型を指定する –TemporalType.DATE … java.sql.Date –TemporalType.TIME … java.sql.Time –TemporalType.TIMESTAMP … java.sql.TimeStamp 26 creationDateは java.sql.TimeStamp型として永続化される Product.java @NotNull @Column(name = "CREATION_DATE") @Temporal(TemporalType.TIMESTAMP) private Date creationDate;
  27. 27. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | エンティティ・クラスのあれこれ (4) 一時フィールド •デフォルトではエンティティ・クラスのフィールドは永続化される –永続化対象から除外する場合は、@Transient注釈を指定する 27 crrentTotalは永続化されない Cart.java @Entity public class Cart implements Serializable { @Id private int customerId; @Transient private double currentTotal; // …
  28. 28. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | •Java EE 環境では、EntityManagerは JTAトランザクションを利用する –Bean管理トランザクション(BMT) … Servlet, CDI Bean –コンテナ管理トランザクション(CMT) … EJB Java EE 環境でのJPAの操作とトランザクション 28 @Entity public class Product implements Serializable { @Id private Integer id; // … } 永続化ロジック @Stateless public class ProductEJB { @PersistenceContext private EntityManager em; // … } ビジネスロジック Servlet プレゼンテーション JSF ManagedBean Webサービス エンドポイント EJB JPA トランザクション境界
  29. 29. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | EntityManagerの取得 •Java EE –EntityManagerはDI(依存性注入)可能 (@PersistenceContext注釈) •Java SE –EntityManagerFactoryを使ってインスタンス化 29 EntityManagerFactory emf = Persitence.createEntityManagerFactory("prodMgmtPU"); EntityManager em = emf.createEntityManager(); persitence.xml で定義した永続性ユニットを指定 します ・transation-typeはRESOURCE_LOCAL ・JDBCドライバ情報を <property> 要素に指定 ProductEJB.java @PersitenceContext EntityManager em;
  30. 30. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | PersistenceContext 管理対象 Managed デタッチ Detached エンティティのライフサイクル 削除済み Removed New new em.find em.persist em.remove em.clear em.detatch em.merge em.refresh em.flush 永続IDが関連付けられた オブジェクト 存在しない TXコミット時に永続ス トアから削除される 30
  31. 31. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | エンティティの操作 (1) – 永続化 EntityManagerのメソッド •データベースにエンティティを永続化する(SQLのINSERT文に相当) –persist後のエンティティはPersistenceContext に関連付けられた状態(管理対象) 31 ProductEJB.java public void create(Product entity) { em.persist(entity); }
  32. 32. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | エンティティの操作 (2) – 検索 EntityManagerのメソッド •主キーに基づいてエンティティを検索する(SQLのSELECT文に相当) –メソッド戻り値は、PersistenceContextに関連付けられた状態(管理対象) –findメソッドの引数 •第1引数 … エンティティ・クラス •第2引数 … 主キー (基本データ型はオートボクシングされる) 32 ProductEJB.java public Product find(Integer custId) { return em.find(Product.class, custId); }
  33. 33. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | エンティティの操作 (3) – 更新 EntityManagerのメソッド •管理対象エンティティを更新すると変更が永続ストアに反映される (SQLのUPDATE文に相当) –管理対象ではない(デタッチ状態)エンティティを更新する場合は、mergeメ ソッドで管理対象エンティティを取得する 33 ProductEJB.java Product prod = em.find(Product.class, 2); prod.setUnits(5); prod.setStatus("N"); 管理対象エンティティを取得 TX コミット時に変更がデータベース に反映される public void edit(Product entity) { em.merge(entity); }; デタッチ状態のエンティティが引数 として渡される
  34. 34. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | •管理対象エンティティを削除すると変更が永続ストアに反映される (SQLのDELETE文に相当) –エンティティを管理対象にしてから削除を行う エンティティの操作 (4) – 削除 EntityManagerのメソッド 34 ProductEJB.java public void remove(Product entity) { em.remove(em.merge(entity)); } TXがコミットされると削除が永続ストアに反映される。 コミット時点ではJavaオブジェクトそのものは削除され ない
  35. 35. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | エンティティの問い合わせ •JPQL(Java Persistence Query Language ) –エンティティに対する問い合わせ言語 •SQLによく似た構文 •SELECT / UPDATE / DELETE に対応 •WHERE句(フィルタ) / ORDR BY(ソート) / GROUP BY (集約) も可能 35 SELECT p FROM Product p エンティティ・クラス名 識別変数(エイリアス)
  36. 36. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 基本的な JPQL •エンティティのフィールドを返すJPQL •WHERE 句 と ORDER BY –比較、BETWEEN、LIKE、INなどSQLで使用できる演算子はJPQLでも使用可能 –文字列関数や算術関数も使用可能 •CONCAT, SUBSTRING, TRIM, LOWER, UPPER, LOCATE, LENGTH, ABS, SQRT, MOD, SIZE など 36 SELECT p.productName FROM Product p SELECT p FROM Product p WHERE p.productName LIKE '%01' ORDER BY p.id
  37. 37. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 問い合わせの作成 (1) 動的問い合わせ •動的問い合わせ (Query / TypedQuery) –JPQLでは名前付きパラメータを使用可能 37 String queryString = "SELECT p FROM Product p WHERE p.price > 50 ORDER BY p.id"; Query query = em.createQuery(queryString); Product product = (Product) query.getSingleResult(); TypedQuery<Product> typedQuery = em.createQuery(queryString, Product.class); Product product = typedQuery.getSingleResult(); Qrueyの戻り値はObjectなので必要に応じて キャストを行います TypedQueryは作成時に型指定を 行います String queryString = "SELECT p FROM Product p WHERE p.price > :price ORDER BY p.id”; TypedQuery<Product> typedQuery = em.createQuery(queryString, Product.class); typedQuery.setParameter("price", 50); List<Product> list = typedQuery.getResultList(); 名前付きパラメータの代わりに 位置パラメータ (?1) も使用できます
  38. 38. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 問い合わせの作成 (2) 名前付き問い合わせ •名前付き問い合わせ –エンティティ・クラスで@NamedQuery属性を使用して問い合わせを宣言 38 Product.java @Entity @Table(name = "PRODUCTS") @NamedQueries({ @NamedQuery(name = "Product.findAll", query = "SELECT p FROM Product p ORDER BY p.id"), @NamedQuery(name = "Product.findByProductName", query = "SELECT p FROM Product p WHERE p.productName LIKE :productName ORDER BY p.id")}) public class Product implements Serializable { // … @NamedQuery注釈が複数ある場合は @NamedQueries注釈を使用します public List<Product> findAll() { return em.createNamedQuery("Product.findAll").getResultList(); } @NamedQueryのname属性を 指定します ProductEJB.java
  39. 39. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 問い合わせの実行 •問い合わせの結果を返すメソッド (Query / TypedQuery ) –getResultList() … 問い合わせ結果のListを返す (TypeQueryは型付けされたListを返す) –getSingleResult() … 単一の問い合わせ結果を返す (TypedQueryは型付けされた結果を返す) •結果が複数ある場合は NonUniqueResultException がスローされる •結果がない場合は NoResultException がスローされる 39 TIPS: どちらのメソッドでも UPDATE / DELETE 文を実行すると IllegalStateException をスローします UPDATE / DELETE 文を実行するには executeUpdate() を使用します
  40. 40. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 問い合わせの作成 (3) NativeQuery と Criteria API •NativeQuery … 問い合わせをSQLで記述 –動的問い合わせは Queryインタフェースのみ使用可能 –エンティティ・クラスでは@NamedNativeQuery注釈で宣言可能 •Criteria API … 型指定された問い合わせをAPIベースで記述 40 CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaQuery<Product> cq = cb.createQuery(Product.class); Root<Product> product = cq.from(Product.class); cq.select(product); TypedQuery<Product> query = em.createQuery(cq); List<Product> list = query.getResultList(); 等価なJPQL: SELECT p FROM Product p
  41. 41. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | まとめ •JPAは、Java EE の標準ORマッピング・フレームワークです –JavaオブジェクトをRDBの永続データに相互変換 •@Entityなどの注釈を使用したかんたん開発 –エンティティの操作はEntityManagerを使用します •CRUD操作はEntityManagerのメソッドで(create, find, merge, remove など) –トランザクション制御が必要な場合はコンテナ管理トランザクション(EJB)が便利 •問い合わせはJPQL、NativeSQL、Criteria APIで –WebLogic Serverにデータソースの設定を行いましょう •永続ユニットで指定したJNDI名を設定する •本番環境ではチューニングも忘れずに 41
  42. 42. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | オラクルユニバーシティからのお知らせ 42
  43. 43. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | オラクルユニバーシティからのお知らせ •WebLogic Serverの管理方法やJava EE 6を使ったアプリケーション開発方法を体系 的に学習したい方に最適な研修コースをご提供しています。 –Classroomトレーニングだけでなく、Live Virtual Classや『Oracle トレーニング・オンデマ ンド』など多様な受講形態から選択いただけます。 43
  44. 44. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | コース内容 ■Oracle WebLogic Server概要 ■ドメインの作成 ■Administration Console ■ドメインのモニタリング ■アプリケーションのデプロイメント ■WebLogic Server セキュリティ ■ドメインのバックアップおよびリカバリ ■WebLogic Serverのインストールおよびパッチ適用 ■サーバーの起動および停止 ■JDBCデータソースの構成 ■ノードマネージャ ■WebLogic Serverクラスタリング ■トランザクション・サービスのコンフィグレーション 受講前提条件 ・Linux の基本的な操作方法の理解 ・Java EE の基礎知識(サーブレットや JSP など) ※推奨 対象者 ・Oracle WebLogic Server 管理者 ・Javaアプリケーション開発者 ・アーキテクト コース日程 5日間 日程の詳細は Oracle University Webサイト にてご確認ください。 受講料 定価¥374,850(税込) ※Oracle PartnerNetwork会員様は、パートナー割引価格で受講いただけます。 Oracle WebLogic Server 12c の運用管理スキルをしっかり習得 待望のWebLogic Server 12c(12.1.2)対応研修は絶賛提供中です。 このコースでは、アプリケーション・サーバー管理者がOracle WebLogic Server 12cのインストールおよび設定方法を習得することができま す。管理コンソールやコマンドラインツール(WLST)などを使用してドメインを構成する方法やJava EEアプリケーションをサーバーにデ プロイする方法についても説明します。さらに、Oracle WebLogic Server のプロキシとしてOracle HTTP Serverを設定し、WebLogic Serverク ラスタによるアプリケーションのフェイルオーバーとロードバランシングをサポートする方法など、環境構築に必要なスキルとWebLogic Serverのモニタリングやログ情報の収集など運用に必要なスキルを実機演習を通して習得できます。さらに、Oracle WebLogic Server 12cで 強化されたActive GridLink for RACの構成方法やWebLogic Server 12.1.2の新機能である動的クラスタなど注目の新機能もカバーします。 Oracle WebLogic Server 12c: 管理 I ミドルウェア 開催日程 ■ 2014年 11月 17日 (月) 〜 21日 (金) 44
  45. 45. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | コース内容 ■Java EE 6 概要 ■開発環境の整備 ■Webコンポーネントモデル ■JSFを使用した開発 ■CDIによる依存性注入 ■JSF モバイルアプリケーションの作成 ■Bean Validationの使用 ■EJBコンポーネントモデル ■Java Persistence API ■トランザクションポリシーの実装 ■セキュリティポリシーの実装 ■WebサービスおよびJava EE 統合技術 受講前提条件 ・SQLおよびHTML, CSSの基礎知識 ・統合開発環境(IDE)を使用したJavaプログラミング経験 対象者 ・Javaアプリケーション開発者 ・システム・エンジニア ・アーキテクト コース日程 5日間 日程の詳細は Oracle University Webサイト にてご確認ください。 受講料 定価¥374,850(税込) ※Oracle PartnerNetwork会員様は、パートナー割引価格で受講いただけます。 開発生産性がさらに向上したJava EE 6 標準技術で作る Webアプリケーションの開発ポイントが分かる。開発者にオススメのコース このコースでは、Java EE 6 に準拠したWebアプリケーションを開発、およびデプロイするための知識を習得することができます。 JavaServer Faces、Enterprise Java Beans、Java Persistence API をはじめとしたJava EE 6の主要な標準仕様について理解し、主にJSFテクノ ロジーを使用した、デスクトップやモバイルWebブラウザからアクセス可能なエンドツーエンドのWebアプリケーションの開発方法 を豊富な演習を通して学習することができます。 Java EE 6 アプリケーション開発 開催日程 ■ 2014年 11月 10日 (月) 〜 14日 (金) Java 45
  46. 46. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | コース内容 JVMおよびパフォーマンスの概要 Javaガベージ・コレクションの仕組み Java ガベージ・コレクタ コマンドラインからのJVMの監視 Mission Control および JVM 監視ツール Java Flight Recorder OSレベルでのパフォーマンスの監視 パフォーマンス・プロファイリング・ツール プロファイリングを使用したパフォーマンス問題のトラブルシュート ガベージ・コレクションのチューニング 言語レベルでの考慮事項とガベージ・コレクション 受講前提条件 ・Java SE 7 プログラミング I / II 受講相当の知識 対象者 ・Javaアプリケーション開発者 ・システム・エンジニア ・アーキテクト ・サポートエンジニア コース日程 3日間 日程の詳細は Oracle University Webサイト にてご確認ください。 受講料 定価¥289,008(税込) ※Oracle PartnerNetwork会員様は、パートナー割引価格で受講いただけます。 ガベージコレクションの仕組みからツールの活用方法まで Javaパフォーマンス・チューニングのエッセンスを身につけよう このコースでは、Javaプログラミング言語に適用可能なパフォーマンス・チューニングの手法を学習します。また、G1GCを含む Hotspot JVMにおけるJavaガベージ・コレクションの仕組みとパフォーマンスへの影響を理解するとともに、Java Mission Controlや Flight Recorderなどのツールの使用したパフォーマンス問題の解決方法を学習します。 •パフォーマンスに関する基本原則の理解 •Java SE 7 で使用できるガーベージ・コレクタの理解と適切な選択 •各種ツールを活用したパフォーマンス・チューニングの実践 Java SE 7 パフォーマンス・チューニング 開催日程 ■ 2014年 11月 26日 (水) 〜 28日 (金) Java 46
  47. 47. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 『秋のスキルアップキャンペーン』のご案内 11月に研修を受講された方に Dukeぬいぐるみ プレゼント! •11月にトレーニングキャンパス赤坂、またはLive Virtual Classで開催されるMiddleware/Java 研修 コースを受講された方にもれなくDukeぬいぐるみをプレゼントします。 研修受講を検討されている方はこの機会に是非! 47 お問い合せは オラクルユニバーシティ まで http://www.oracle.com/jp/education/ Tel: 0120-155-092 トレーニングキャンパス赤坂で開催される研修コース 日程 Java SE 7 プログラミング I 2014/11/19 - 11/21 Java SE 7 プログラミング II 2014/11/25 - 11/27 Java EE 6: JSF を使ったWebアプリケーション開発 2014/11/18 - 11/21 Oracle WebLogic Server 12c: 管理 I 2014/11/17 - 11/21 Java SE 7 パフォーマンス・チューニング 2014/11/26 - 11/28
  48. 48. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 『秋のスキルアップキャンペーン』のご案内 11月に研修を受講された方に Dukeぬいぐるみ プレゼント! •11月にトレーニングキャンパス赤坂、またはLive Virtual Classで開催されるMiddleware/Java 研修 コースを受講された方にもれなくDukeぬいぐるみをプレゼントします。 研修受講を検討されている方はこの機会に是非! 48 お問い合せは オラクルユニバーシティ まで http://www.oracle.com/jp/education/ Tel: 0120-155-092 Live Virtual Classで開催される研修コース 日程 Java SE 8 新機能 2014/11/27 - 11/28 Java EE 7: 新機能 2014/11/25 - 11/26
  49. 49. Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 49

×