SlideShare a Scribd company logo
1 of 44
Beginning Java EE 6 勉強会(1)
              -Java EE 6概要-

                   担当者:@making
                    Toshiaki Maki
                       2012/04/18
はじめに - Java EE 6勉強会の進め方
• 隔週水曜日に各要素技術をそれぞれ扱います
     – 座学+ハンズオン形式
     – 資料は業務外時間に作成し、原則SlideShareにアッ
       プします
•   概要 4/18 @making
•   JPA 4/25 @kjstylepp
•   EJB 5/9 @inatus
•   JSF 5/23 @XXX
•   JMS 6/6 @XXX
•   JAX-WS 6/20 @masato_ka
•   JAX-RS 6/27 講師募集中
12/04/18         Beginning JavaEE6 勉強会(1)   2
金魚本が手元にない方は
• いますぐぽちりましょう
• http://amzn.to/JavaEE6




12/04/18       Beginning JavaEE6 勉強会(1)   3
目次
1.      Java EE 6の概要
2.      Javaと永続化




     12/04/18      Beginning JavaEE6 勉強会(1)   4
第1章
                     Java EE 6の概要



12/04/18   Beginning JavaEE6 勉強会(1)   5
本論に入る前に質問
• 次のうち正しい組み合わせを全て選びなさい
     1.    J2SE   1.4 – J2EE 1.4
     2.    J2SE   1.5 – J2EE 1.5
                                                    ggrks
     3.    Java   SE 1.5 – Java EE 5
     4.    Java   SE 5 - Java EE 5
     5.    Java   SE 1.6 – Java EE 6
     6.    Java   SE 6 – Java EE 6
     7.    Java   SE 7 – Java EE 6




12/04/18                 Beginning JavaEE6 勉強会(1)           6
Java EE 6の概要
• 内部アーキテクチャ
• Java EE 6で新しくなった点




12/04/18   Beginning JavaEE6 勉強会(1)   7
1.1 Java EE とは
• Java Enterprise Edition
• Javaで(主に)Webアプリケーションを構築するための
  数々の仕様、およびその実装です。
     – Servlet、JSP、EJB、JPAとか
• Java EEの仕様を満たした機能を提供するアプリケー
  ションサーバをJava EEアプリケーションサーバと呼ぶ。
     –     GlassFish(Oracle)
     –     WebLogic Server(Oracle)
     –     WebSphere Application Server(IBM)
     –     JBoss Application Server (Redhat)
     –     Cosminexus (Hitachi)
     –     Interstage (Fujitsu)
     –     WebOTX (NEC)
     –     Geronimo (Apache)
• 同じアプリケーションならどのサーバでもが動く(は
  ず、、)
• Tomcatはただのサーブレットコンテナです
12/04/18                  Beginning JavaEE6 勉強会(1)   8
1.1.1 Java EE 6の歴史

                                                                          Flexible

                                                           Ease of
                                                           Development
                                                                           Java EE 6
                                            Web Services
                                                                          Pruning,Pro
                              Rubustness
               Enterprise                                                   files,EJB
               Application
                                             J2EE 1.4       Java EE 5      Lite,JAX-
                                                                             RS,CDI
                                                Web        Annotation
                J2EE 1.2        J2EE 1.3
                                             Services,     s,EJB3.0,JPA
                                            Manageme       ,JAX-WS,JSF
               Servlet,JSP,     EJB CMP,
                                            nt,Deploym                    Web Profile
                EJB,JMS,          JCA
                                                ent
 Project JPE    RMI/IIOP
                                                                           Managed
                                                                            Bean
May 1998        Dec 1999      Sep 2001      Nov 2003       May 2006       Dec 2009


12/04/18                      Beginning JavaEE6 勉強会(1)                               9
Java EE 6の全体像




           http://www.slideshare.net/takakiyo/jjuc-ccc-2010-spring より拝借
12/04/18                   Beginning JavaEE6 勉強会(1)                       10
ざっくり分類
•   プレゼンテーション層→JSF
•   トランザクション層→EJB
•   データアクセス層→JPA
•   DI、コンポーネント管理→CDI
•   メッセージング→JMS
•   WEBサービス→JAX-WS、JAX-RS




12/04/18      Beginning JavaEE6 勉強会(1)   11
1.2 Java EE 6の新しいキーワード
• さらなる開発容易性向上
     – 5で大きく変わり、EJB、永続エンティティ、Web
       サービスがアノテーションベースに
     – 6ではJSFのマネージドBeanがアノテーションベース
       になり、XMLディスクリプタも不要に
     – Servlet3.0やCDI(Contexts and Dependency
       Injection)、Bean Validation…金魚本には載って
       いません
• 古い技術のプルーニング
• 新しい仕様の追加



12/04/18         Beginning JavaEE6 勉強会(1)   12
1.2.1 軽量化
• プルーニング
     – EJB 2.X CMP エンティティBean (JSR318)
           • JPAへ
     – JAX-RPC (JSR101)
           • JAX-WSへ
     – JAXR (JSR93)
     – Java EE アプリケーション・デプロイ (JSR88)
• プロフィル
     – Java EEのサブセット or スーパーセットの提供
     – Webプロファイル
           • Servlet 3.0, JSP 2.2, EJB Lite 3.1, JPA 2.0, JSF 2.2
             等


12/04/18                 Beginning JavaEE6 勉強会(1)               13
プロファイル
• Java EEのサブセットをプロファイルとして定
  義可能
     – Java EEコンテナが特定のプロファイルだけ実装し
       てもよい
     – WAS8.5ではより軽量なLiberty Profileを提供



            Java EE Full Profile

                      Web Profile



12/04/18       Beginning JavaEE6 勉強会(1)   14
1.2.2 操作性の向上
• JSFやServletの設定が簡単に
• アノテーションの導入でXMLファイル(faces-
  config.xml、web.xml)への設定がかなり省略可
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;

@ManagedBean
                                                faces-config.xmlの
public class BookController {                   <managed-bean>タグ内に
  @EJB                                          記述していた情報がアノ
  private BookEJB bookEJB;                      テーションで表現可能に。
    private Book book = new Book();             (CDIを使うと@Namedで
    private List<Book> bookList;                OK)
    public String doCreateBook() {
      book = bookEJB.createBook(book);
      bookList = bookEJB.findBooks();
      return "listBooks.xhtml";
    }
}



12/04/18                         Beginning JavaEE6 勉強会(1)            15
1.2.3 豊富な機能
• JAX-RSでREST対応!
• JPA2.0でデータベース操作がより柔軟に
• EJB3.1でSingleton Session Bean(アプリで唯一のインスタンス)
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("books")
public class BookResource {
  @PersistenceContext
  private EntityManager em;

    @GET
    @Produces({"application/xml", "application/json"})
    public List<Book> getAllBooks() {
      Query query = em.createNamedQuery("findAllBooks");
      List<Book> books = query.getResultList();
      return books;
    }
}

12/04/18                        Beginning JavaEE6 勉強会(1)   16
1.2.4 移植性の向上
• JNDI名が標準化され、どのコンテナでも同じア
  プリをデプロイできるようになった
     – これまではベンダ毎(GlassFish、JBoss、WebLogic)
       が独自に設定していたため、他製品へ移行する際に
       JNDI名を変更する必要があった
• 組み込みコンテナが標準APIで用意され、
  JavaSEでEJBの単体テストが簡単に行えるよう
  になった
     – EJBContaioner container =
       EJBContainer.createEJBContainer(p);
     – Hello hello = (Hello)
       container.getContext().lookup(“java:global/cl
       asses/Hello”);
• 7章で!
12/04/18           Beginning JavaEE6 勉強会(1)        17
第2章
                     Javaと永続化



12/04/18   Beginning JavaEE6 勉強会(1)   18
Javaと永続化
• データの永続化
     – 通常はリレーショナルデータベースに永続化
     – リレーショナルデータベースとJavaオブジェクト
           • 主キー・外部キー・テーブル結合などオブジェクト指向言語
             とはまったく異なる表現
• Javaオブジェクトの永続化の方法
     – シリアライゼーションによる永続化
           • java.io.Serializableインタフェース
           • シンプルな機構であり、クエリ言語など機能が十分でない
     – リレーショナルデータベースによる永続化
           • Java Database Connectivity(JDBC)によるアクセス
           • オブジェクト・リレーショナル・マッピング(ORM)
               – Hibernate
               – TopLink
               – Java Data Objects(JDO)
               – ◎Java Persistence API(JPA)
12/04/18               Beginning JavaEE6 勉強会(1)        19
2.1 JPA仕様の概要
• JavaEE5でJPA1.0が登場
• JPAはJDBCの上位の抽象層
• javax.persistenceパッケージ

• コンポーネント構成
     – ORM
     – エンティティマネージャ
     – Java Persistence Query Language
     – トランザクションとロック
     – コールバックとリスナ
     詳しくは3-5章で!

12/04/18            Beginning JavaEE6 勉強会(1)   20
2.1.1 仕様の歴史
•   TopLink
     – 1990年代初期からsmalltalk用に開発
     – Javaでも利用可能
     – しばらく標準化されず
•   JDO
     – 市場に浸透せず
•   初期EJB
     – EJB1.0(1998)
           •   Entity Container Managed Persistence(CMP)という重量級コンポーネントモデル
     – EJB1.1
           •   J2EE1.2の一部にEJB2.1
           •   CMP強化
•   Hibernate
     – 軽量のオブジェクト指向永続性モデル
     – オープンソースで成功
•   JPA1.0
     – Hibernateの多くの設計原理を導入
     – EJB3.0(JSR220)の一部に
     – JavaEE5に
•   JPA2.0
     – JSR317
     – JavaEE6に

12/04/18                      Beginning JavaEE6 勉強会(1)                     21
2.1.2 JPA2.0の新機能
• 単純データ型(String,Integerなど)のコレク
  ションと組み込み可能オブジェクトの個別テー
  ブルマッピング
• Map型対応
• 楽観的ロックに加え、悲観的ロックのサポート
• Criteria API導入
• JPQL拡張(case文など)
• キャッシングAPI

など(詳しくは3-5章で!)

12/04/18   Beginning JavaEE6 勉強会(1)   22
2.1.3 参照実装
• Eclipse Link 2.0
     – Oracle社からEclipse Foundation寄贈されたOracle
       TopLinkを基盤として開発
• その他の実装では
     –     Hibernate
     –     Toplink
     –     OpenJPA
     –     DataNucleus


• 以後、永続性プロバイダまたはプロバイダと呼
  ぶ

12/04/18                 Beginning JavaEE6 勉強会(1)   23
2.2 エンティティ
• オブジェクト エンティティ
• オブジェクトはメモリ内にのみ存在する概念
• エンティティはメモリ+データベース永続化さ
  れるオブジェクト

• 具象型でも抽象型でもOK
     – 継承・リレーションシップのサポート
• JPQLに問い合わせ
• データベースにアクセスしていることを意識し
  ない

12/04/18    Beginning JavaEE6 勉強会(1)   24
2.2.1 オブジェクトリレーショナルマッピング
• 永続化プロバイダがエンティティを認識し、
  マッピングを解釈できるように次の2つの形式
  で記述
     – アノテーション:エンティティのコードにアノテー
       ション(javax.persistenceパッケージ)を記述
     – XMLディスクリプタ:マッピングを外部XMLファイル
       に定義
• Configuration by exceptionの考え方
     – デフォルトのマッピング規則(クラス名とテーブル
       名は同じ、プロパティ名とカラム名は同じ、等)か
       ら外れる場合のみ設定すれば良い。



12/04/18       Beginning JavaEE6 勉強会(1)   25
シンプルなBookエンティティ
              永続性プロバイダに認識させるため
                  のアノテーション
@Entity
public class Book {
  @Id                         主キーの指定
   @GeneratedValue
  private Long id;
  @Column(nullable = false)         カラムの属性指定
  private String title;
  private Float price;
  @Column(length = 2000)
  private String description;
  private String isbn;
  private Integer nbOfPage;
  private Boolean illustrations;
  // 以下セッター・ゲッター略
}



12/04/18           Beginning JavaEE6 勉強会(1)    26
エンティティとテーブルのマッピング




      <<エンティティ>>                                             Book
          Book
                                         +ID             bigint          nullable=false
   -id: Long                             TITLE           varchar(255)    nullable=false
   -title: String                        PRICE           double          nullable=true
   -price: Float                         DESCRIPTION     varchar(2000)   nullable=true
   -description: String                  ISBN            varchar(255)    nullable=true
   -isbn: String                         NBOFPAGE        integer         nullable=true
   -nbOfPage: Integer                    ILLUSTRATIONS   smallint        nullable=true
   -illustrations: Boolean




12/04/18                     Beginning JavaEE6 勉強会(1)                                     27
2.2.2 エンティティのクエリ
• エンティティを操作するAPIが用意されている
• エンティティマネージャが中心に
• CRUD操作やJPQLによる複雑なクエリ

EntityManagerFactory emf = Persistence
     .createEntityManagerFactory("chapter02PU");
EntityManager em = emf.createEntityManager();
em.persist(book);



• INSERT文やSELECT文を明示的に記述しなくても
  SQLが発行される


12/04/18                 Beginning JavaEE6 勉強会(1)   28
エンティティマネージャによる操作

                      <<インタフェース>>
     Main               EntityManager
                                                       DB
            +persist(entity: Object): void
            +find(entityClass: Class<T>, primaryKey:
            Object): <T>



                                Book
                      -id: Long
                      -title: String
                      -price: Float
                      -description: String
                      -isbn: String
                      -nbOfPage: Integer
                      -illustrations: Boolean


12/04/18            Beginning JavaEE6 勉強会(1)                29
JPQL
• エンティティに対するクエリ言語
• SQLに似ているが少し異なる
“SELECT b FROM Book b WHERE b.title = „HOGE‟"

• 動的クエリ(実行時に生成)、静的クエリ(コンパイル時
  に決定)、ネイティブクエリ(SQL)
• 静的クエリは名前付きで設定できる
@Entity
@NamedQuery(name = "findAllBooks", query = "SELECT b FROM Book b")
public class Book {

• createNamedQueryでクエリ取得
Query query = em.createNamedQuery(”findAllBooks");

12/04/18                Beginning JavaEE6 勉強会(1)                     30
2.2.3 コールバックとリスナ
• エンティティはPOJO
     – newした段階ではメモリ内に存在するだけで、エン
       ティティマネージャに認識されない
     – EntityManager#persistでエンティティを管理対象
       にし永続化する
     – エンティティマネージャがエンティティを管理する
       場合は、エンティティに永続IDを設定してデータ
       ベースと同期する
     – エンティティマネージャから分離され、管理外に
       なった場合は普通のJavaオブジェクト
     – EntityManager#removeを実行するとデータベースか
       ら削除され、管理対象外になるが、GCが発生するま
       でメモリ内に残る

12/04/18       Beginning JavaEE6 勉強会(1)   31
エンティティのライフサイクル

                    new                 GC

                          メモリ内に存
             find            在
             JPQL
                                  persist
              merge                      remove
      分離状態                 管理状態                   削除済み状態
              clear
              detach
                                  refresh
                                  setter

             データベース



12/04/18              Beginning JavaEE6 勉強会(1)             32
コールバックとリスナ
• エンティティで特定のライフサイクルイベント
  が発生したときの処理(コールバック)を定義で
  きる
• エンティティクラスに直接コールバックを記述
  できるし、リスナクラスに外出しすることも可
  能(@EntityListeners)
• 5章で!




12/04/18   Beginning JavaEE6 勉強会(1)   33
コールバックアノテーション

                   new                   GC

                          メモリ内に存
                             在
           @PostLoad
                                   @PreLoad
             @PostLoad             @PostLoad
                                      @PreRemove
      分離状態                  管理状態                   削除済み状態

             @PreUpdate
             @PostUpdate           @PreUpdate
                                   @PostUpdate
                                   @PostLoad
              データベース



12/04/18               Beginning JavaEE6 勉強会(1)             34
ハンズオン演習



12/04/18   Beginning JavaEE6 勉強会(1)   35
ハンズオン演習
• NetBeansとDerbyを使用してJPAアプリケーショ
  ンを作成
     – http://ja.netbeans.org/
     – 実行されたSQLが分かりやすいようにSQLログが出力
       されるように設定されています
           • 参考 http://bit.ly/log4jdbc
• ハンズオンプロジェクト
     – https://www.dropbox.com/sh/1axggidrrjz3rnb/OiM
       plS6LJW/beginning-javaee6




12/04/18                Beginning JavaEE6 勉強会(1)    36
プロジェクトを開く




12/04/18   Beginning JavaEE6 勉強会(1)   37
練習1) エンティティクラスの作成

@Entity
@NamedQuery(name = "findAllBooks", query = "SELECT b FROM Book b")
public class Book {
  @Id
  @GeneratedValue
  private Long id;
  @Column(nullable = false)
  private String title;
  private Float price;
  @Column(length = 2000)
  private String description;
  private String isbn;
  private Integer nbOfPage;
  private Boolean illustrations;
  // 以下セッター・ゲッター略
}


12/04/18               Beginning JavaEE6 勉強会(1)                      38
練習2) エンティティの生成

Book book = new Book();
book.setTitle("The Hitchhiker's Guide to the Galaxy");
book.setPrice(12.5F);
book.setDescription("Science fiction comedy series created by Douglas
Adams.");
book.setIsbn("1-84023-742-2");
book.setNbOfPage(354);
book.setIllustrations(false);




12/04/18                  Beginning JavaEE6 勉強会(1)                      39
練習3) エンティティの永続化

EntityManagerFactory emf =
Persistence.createEntityManagerFactory("chapter02PU");
EntityManager em = emf.createEntityManager();




12/04/18                 Beginning JavaEE6 勉強会(1)        40
練習4) エンティティの永続化
• persistメソッドで永続化します
EntityTransaction tx = em.getTransaction();
tx.begin();
em.persist(book);
tx.commit();

em.close();
emf.close();




12/04/18                   Beginning JavaEE6 勉強会(1)   41
mainメソッドを実行する前に
• Derbyを起動する(接続情報は
  src/resources/META-INF/persistence.xml)



• 「ウィンドウ」→「サービス」→「データベー
  ス」→「Java DB」→「データベースを作成」




12/04/18       Beginning JavaEE6 勉強会(1)     42
実行
• mainクラスで右クリック→「ファイルを実行」




• 「java.sql.SQLException: Table/View
  ‘SEQUENCE’ は、既に Schema ‘APP’ に存
  在します。」なエラーログは無視



12/04/18    Beginning JavaEE6 勉強会(1)   43
演習
• 演習1) 練習で永続化したオブジェクトを更新してくだ
  さい。
• 演習2)演習1)で更新する前にflush()する場合、しない
  場合とどう違うでしょうか。
• 演習3) 演習1)のエンティティを削除してください。
  (削除前にflushしてください
• 演習4) エンティティを100個登録してください。SQLは
  どのタイミング発行されましたか。(persistの後に
  printlnを入れてみてください)
• 演習5) “findAllBooks”のNamedQueryを実行し、結果
  をListで取得してください。
• 演習6) 管理済みエンティティを主キー(ID=1など)で一
  件のみ取得してください。ただし登録後にはflush()し
  てください。
• 演習7) 演習6)でflush後にclear()する場合、しない場
  合と比べてどう違うでしょうか。

12/04/18     Beginning JavaEE6 勉強会(1)   44

More Related Content

What's hot

AWS SAA EC2
AWS SAA EC2AWS SAA EC2
AWS SAA EC2Yuki Abe
 
React.js 세미나
React.js 세미나React.js 세미나
React.js 세미나Briantina
 
WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the UnionDimitris Andreadis
 
Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...
Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...
Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...PROIDEA
 
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートOracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートオラクルエンジニア通信
 
React - Start learning today
React - Start learning today React - Start learning today
React - Start learning today Nitin Tyagi
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Coremohamed elshafey
 
超簡単! Strawberry PerlをWindowsにインストール
超簡単! Strawberry PerlをWindowsにインストール超簡単! Strawberry PerlをWindowsにインストール
超簡単! Strawberry PerlをWindowsにインストールShin Tanigawa
 
05 NBR 9050 - Acessibilidade
05 NBR 9050 - Acessibilidade05 NBR 9050 - Acessibilidade
05 NBR 9050 - AcessibilidadeestúdioSANZ
 
Amazon RDS for OracleでのAPEX環境作成
Amazon RDS for OracleでのAPEX環境作成Amazon RDS for OracleでのAPEX環境作成
Amazon RDS for OracleでのAPEX環境作成Nakakoshi Yuji
 
Adatbázis kezelés
Adatbázis kezelésAdatbázis kezelés
Adatbázis kezelésszszptr
 
データベースMeetup~Vol.2 HANAのOLTPのからくり
データベースMeetup~Vol.2 HANAのOLTPのからくりデータベースMeetup~Vol.2 HANAのOLTPのからくり
データベースMeetup~Vol.2 HANAのOLTPのからくりToshihisa Hanaki
 
55 New Features in Java SE 8
55 New Features in Java SE 855 New Features in Java SE 8
55 New Features in Java SE 8Simon Ritter
 

What's hot (20)

React-JS.pptx
React-JS.pptxReact-JS.pptx
React-JS.pptx
 
AWS SAA EC2
AWS SAA EC2AWS SAA EC2
AWS SAA EC2
 
Salesforce 開発入門
Salesforce 開発入門Salesforce 開発入門
Salesforce 開発入門
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
React.js 세미나
React.js 세미나React.js 세미나
React.js 세미나
 
WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the Union
 
Reactjs Basics
Reactjs BasicsReactjs Basics
Reactjs Basics
 
Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...
Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...
Sprytniejsze testowanie kodu java ze spock framework (zaawansowane techniki) ...
 
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートOracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
 
React - Start learning today
React - Start learning today React - Start learning today
React - Start learning today
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Core
 
超簡単! Strawberry PerlをWindowsにインストール
超簡単! Strawberry PerlをWindowsにインストール超簡単! Strawberry PerlをWindowsにインストール
超簡単! Strawberry PerlをWindowsにインストール
 
Its time to React.js
Its time to React.jsIts time to React.js
Its time to React.js
 
05 NBR 9050 - Acessibilidade
05 NBR 9050 - Acessibilidade05 NBR 9050 - Acessibilidade
05 NBR 9050 - Acessibilidade
 
Oracle GoldenGate R12.2 セットアップガイド
Oracle GoldenGate R12.2 セットアップガイドOracle GoldenGate R12.2 セットアップガイド
Oracle GoldenGate R12.2 セットアップガイド
 
Amazon RDS for OracleでのAPEX環境作成
Amazon RDS for OracleでのAPEX環境作成Amazon RDS for OracleでのAPEX環境作成
Amazon RDS for OracleでのAPEX環境作成
 
Adatbázis kezelés
Adatbázis kezelésAdatbázis kezelés
Adatbázis kezelés
 
Introduction to react js
Introduction to react jsIntroduction to react js
Introduction to react js
 
データベースMeetup~Vol.2 HANAのOLTPのからくり
データベースMeetup~Vol.2 HANAのOLTPのからくりデータベースMeetup~Vol.2 HANAのOLTPのからくり
データベースMeetup~Vol.2 HANAのOLTPのからくり
 
55 New Features in Java SE 8
55 New Features in Java SE 855 New Features in Java SE 8
55 New Features in Java SE 8
 

Viewers also liked

Beginning Java EE 6 勉強会(7) #bje_study
Beginning Java EE 6 勉強会(7) #bje_studyBeginning Java EE 6 勉強会(7) #bje_study
Beginning Java EE 6 勉強会(7) #bje_studyikeyat
 
Beginning Java EE 6 勉強会(6) #bje_study
Beginning Java EE 6 勉強会(6) #bje_studyBeginning Java EE 6 勉強会(6) #bje_study
Beginning Java EE 6 勉強会(6) #bje_studyMasato Kawamura
 
Java女子部 Java EEハンズオン(応用編)
Java女子部 Java EEハンズオン(応用編)Java女子部 Java EEハンズオン(応用編)
Java女子部 Java EEハンズオン(応用編)Misaki Kajiura
 
Java EE 再入門
Java EE 再入門Java EE 再入門
Java EE 再入門minazou67
 
Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Takakiyo Tanaka
 
Beginning Java EE 6 勉強会(4) #bje_study
Beginning Java EE 6 勉強会(4) #bje_studyBeginning Java EE 6 勉強会(4) #bje_study
Beginning Java EE 6 勉強会(4) #bje_studyGeorge Okada
 
Beginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_studyBeginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_studyinatus
 
Beginning Java EE 6 勉強会(2) #bje_study
Beginning Java EE 6 勉強会(2) #bje_studyBeginning Java EE 6 勉強会(2) #bje_study
Beginning Java EE 6 勉強会(2) #bje_studyKinji Akemine
 
はじめてのJPA
はじめてのJPAはじめてのJPA
はじめてのJPAkawaba
 
EJB3 ABC
EJB3 ABCEJB3 ABC
EJB3 ABCbose999
 
JavaOne報告会 ライトニングトーク
JavaOne報告会 ライトニングトークJavaOne報告会 ライトニングトーク
JavaOne報告会 ライトニングトークTakuya Sato
 
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。O/R Mapping の話をするよ。ActiveRecord の話をしたかった。
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。Tomohiko Himura
 
Beginning Java EE 6 勉強会(5) #bje_study
Beginning Java EE 6 勉強会(5) #bje_studyBeginning Java EE 6 勉強会(5) #bje_study
Beginning Java EE 6 勉強会(5) #bje_studyzuisener .
 
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6Rakuten Group, Inc.
 
ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発Takakiyo Tanaka
 
20150829 Java女子部勉強会 Java EEハンズオン
20150829 Java女子部勉強会 Java EEハンズオン20150829 Java女子部勉強会 Java EEハンズオン
20150829 Java女子部勉強会 Java EEハンズオンMisaki Kajiura
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能kimulla
 
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?kwatch
 

Viewers also liked (20)

Beginning Java EE 6 勉強会(7) #bje_study
Beginning Java EE 6 勉強会(7) #bje_studyBeginning Java EE 6 勉強会(7) #bje_study
Beginning Java EE 6 勉強会(7) #bje_study
 
Beginning Java EE 6 勉強会(6) #bje_study
Beginning Java EE 6 勉強会(6) #bje_studyBeginning Java EE 6 勉強会(6) #bje_study
Beginning Java EE 6 勉強会(6) #bje_study
 
Java女子部 Java EEハンズオン(応用編)
Java女子部 Java EEハンズオン(応用編)Java女子部 Java EEハンズオン(応用編)
Java女子部 Java EEハンズオン(応用編)
 
Java EE 再入門
Java EE 再入門Java EE 再入門
Java EE 再入門
 
Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界Java EE 6で復活するエンタープライズJavaの世界
Java EE 6で復活するエンタープライズJavaの世界
 
Beginning Java EE 6 勉強会(4) #bje_study
Beginning Java EE 6 勉強会(4) #bje_studyBeginning Java EE 6 勉強会(4) #bje_study
Beginning Java EE 6 勉強会(4) #bje_study
 
Beginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_studyBeginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_study
 
Beginning Java EE 6 勉強会(2) #bje_study
Beginning Java EE 6 勉強会(2) #bje_studyBeginning Java EE 6 勉強会(2) #bje_study
Beginning Java EE 6 勉強会(2) #bje_study
 
はじめてのJPA
はじめてのJPAはじめてのJPA
はじめてのJPA
 
EJB3 ABC
EJB3 ABCEJB3 ABC
EJB3 ABC
 
JavaOne報告会 ライトニングトーク
JavaOne報告会 ライトニングトークJavaOne報告会 ライトニングトーク
JavaOne報告会 ライトニングトーク
 
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。O/R Mapping の話をするよ。ActiveRecord の話をしたかった。
O/R Mapping の話をするよ。ActiveRecord の話をしたかった。
 
Slick入門
Slick入門Slick入門
Slick入門
 
Beginning Java EE 6 勉強会(5) #bje_study
Beginning Java EE 6 勉強会(5) #bje_studyBeginning Java EE 6 勉強会(5) #bje_study
Beginning Java EE 6 勉強会(5) #bje_study
 
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
[RakutenTechConf2013] [E-3] Financial Web System with Java EE 6
 
ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発ついに始まるJava EE 7時代のアプリケーション開発
ついに始まるJava EE 7時代のアプリケーション開発
 
Move from J2EE to Java EE
Move from J2EE to Java EEMove from J2EE to Java EE
Move from J2EE to Java EE
 
20150829 Java女子部勉強会 Java EEハンズオン
20150829 Java女子部勉強会 Java EEハンズオン20150829 Java女子部勉強会 Java EEハンズオン
20150829 Java女子部勉強会 Java EEハンズオン
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
 
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
 

Similar to Beginning Java EE 6 勉強会(1) #bje_study

今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJavaTakashi Ito
 
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-PE-BANK
 
ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427Nobuhiro Sue
 
WebLogic 10.3.4 Introduction
WebLogic 10.3.4 IntroductionWebLogic 10.3.4 Introduction
WebLogic 10.3.4 IntroductionYoshio Terada
 
JBoss AS7 rev2
JBoss AS7 rev2JBoss AS7 rev2
JBoss AS7 rev2nekop
 
JBoss AS7 rev3
JBoss AS7 rev3JBoss AS7 rev3
JBoss AS7 rev3nekop
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門minazou67
 
JavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJavaJavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJavaなおき きしだ
 
What is java_se_7
What is java_se_7What is java_se_7
What is java_se_7TakumiIINO
 
Pure JavaEE or Spring #glassfishjp
Pure JavaEE or Spring #glassfishjpPure JavaEE or Spring #glassfishjp
Pure JavaEE or Spring #glassfishjpToshiaki Maki
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Masatoshi Tada
 
2011年javaの旅
2011年javaの旅2011年javaの旅
2011年javaの旅torutk
 
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSatoshi Kisanuki
 
実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)torutk
 
JBoss AS7
JBoss AS7JBoss AS7
JBoss AS7nekop
 
Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpJava EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpNorito Agetsuma
 
Oracleがnode.jsをやり始めたというのだが!
Oracleがnode.jsをやり始めたというのだが!Oracleがnode.jsをやり始めたというのだが!
Oracleがnode.jsをやり始めたというのだが!Hiroshi Hayakawa
 

Similar to Beginning Java EE 6 勉強会(1) #bje_study (20)

今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava今年はJava進化の年!今知っておくべき新しいJava
今年はJava進化の年!今知っておくべき新しいJava
 
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
Javaヂカラ #Java最新動向 -Java 11 の新機能やOracle Code One 2018 発の最新技術トレンドを一気にキャッチアップ-
 
ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427ぽんぽこバレー勉強会 20120427
ぽんぽこバレー勉強会 20120427
 
WebLogic 10.3.4 Introduction
WebLogic 10.3.4 IntroductionWebLogic 10.3.4 Introduction
WebLogic 10.3.4 Introduction
 
JBoss AS7 rev2
JBoss AS7 rev2JBoss AS7 rev2
JBoss AS7 rev2
 
JBoss AS7 rev3
JBoss AS7 rev3JBoss AS7 rev3
JBoss AS7 rev3
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門
 
JavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJavaJavaOne2015報告またはこれからのJava
JavaOne2015報告またはこれからのJava
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 
What is java_se_7
What is java_se_7What is java_se_7
What is java_se_7
 
Pure JavaEE or Spring #glassfishjp
Pure JavaEE or Spring #glassfishjpPure JavaEE or Spring #glassfishjp
Pure JavaEE or Spring #glassfishjp
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
 
2011年javaの旅
2011年javaの旅2011年javaの旅
2011年javaの旅
 
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなし
 
Java Day Tokyo 2014 まとめ (chen)
Java Day Tokyo 2014 まとめ (chen)Java Day Tokyo 2014 まとめ (chen)
Java Day Tokyo 2014 まとめ (chen)
 
実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)実行可能JavaFXアプリケーションJAR(発表直前版)
実行可能JavaFXアプリケーションJAR(発表直前版)
 
JBoss AS7
JBoss AS7JBoss AS7
JBoss AS7
 
Springの向かう先
Springの向かう先Springの向かう先
Springの向かう先
 
Java EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jpJava EE パフォーマンスTips #glassfish_jp
Java EE パフォーマンスTips #glassfish_jp
 
Oracleがnode.jsをやり始めたというのだが!
Oracleがnode.jsをやり始めたというのだが!Oracleがnode.jsをやり始めたというのだが!
Oracleがnode.jsをやり始めたというのだが!
 

More from Toshiaki Maki

From Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsugFrom Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsugToshiaki Maki
 
Concourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyoConcourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyoToshiaki Maki
 
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tToshiaki Maki
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1Toshiaki Maki
 
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Toshiaki Maki
 
Spring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerSpring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerToshiaki Maki
 
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjpOpen Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjpToshiaki Maki
 
Spring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsugSpring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsugToshiaki Maki
 
Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1Toshiaki Maki
 
BOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyoBOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyoToshiaki Maki
 
Why PCF is the best platform for Spring Boot
Why PCF is the best platform for Spring BootWhy PCF is the best platform for Spring Boot
Why PCF is the best platform for Spring BootToshiaki Maki
 
Zipkin Components #zipkin_jp
Zipkin Components #zipkin_jpZipkin Components #zipkin_jp
Zipkin Components #zipkin_jpToshiaki Maki
 
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07Toshiaki Maki
 
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoSpring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoToshiaki Maki
 
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsug実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsugToshiaki Maki
 
Spring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjugSpring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjugToshiaki Maki
 
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Toshiaki Maki
 
Managing your Docker image continuously with Concourse CI
Managing your Docker image continuously with Concourse CIManaging your Docker image continuously with Concourse CI
Managing your Docker image continuously with Concourse CIToshiaki Maki
 
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...Toshiaki Maki
 
Short Lived Tasks in Cloud Foundry #cfdtokyo
Short Lived Tasks in Cloud Foundry #cfdtokyoShort Lived Tasks in Cloud Foundry #cfdtokyo
Short Lived Tasks in Cloud Foundry #cfdtokyoToshiaki Maki
 

More from Toshiaki Maki (20)

From Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsugFrom Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
 
Concourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyoConcourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyo
 
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
 
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
 
Spring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerSpring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & Micrometer
 
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjpOpen Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjp
 
Spring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsugSpring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsug
 
Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1
 
BOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyoBOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyo
 
Why PCF is the best platform for Spring Boot
Why PCF is the best platform for Spring BootWhy PCF is the best platform for Spring Boot
Why PCF is the best platform for Spring Boot
 
Zipkin Components #zipkin_jp
Zipkin Components #zipkin_jpZipkin Components #zipkin_jp
Zipkin Components #zipkin_jp
 
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
 
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoSpring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
 
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsug実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
 
Spring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjugSpring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjug
 
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
 
Managing your Docker image continuously with Concourse CI
Managing your Docker image continuously with Concourse CIManaging your Docker image continuously with Concourse CI
Managing your Docker image continuously with Concourse CI
 
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
 
Short Lived Tasks in Cloud Foundry #cfdtokyo
Short Lived Tasks in Cloud Foundry #cfdtokyoShort Lived Tasks in Cloud Foundry #cfdtokyo
Short Lived Tasks in Cloud Foundry #cfdtokyo
 

Recently uploaded

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Recently uploaded (8)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

Beginning Java EE 6 勉強会(1) #bje_study

  • 1. Beginning Java EE 6 勉強会(1) -Java EE 6概要- 担当者:@making Toshiaki Maki 2012/04/18
  • 2. はじめに - Java EE 6勉強会の進め方 • 隔週水曜日に各要素技術をそれぞれ扱います – 座学+ハンズオン形式 – 資料は業務外時間に作成し、原則SlideShareにアッ プします • 概要 4/18 @making • JPA 4/25 @kjstylepp • EJB 5/9 @inatus • JSF 5/23 @XXX • JMS 6/6 @XXX • JAX-WS 6/20 @masato_ka • JAX-RS 6/27 講師募集中 12/04/18 Beginning JavaEE6 勉強会(1) 2
  • 4. 目次 1. Java EE 6の概要 2. Javaと永続化 12/04/18 Beginning JavaEE6 勉強会(1) 4
  • 5. 第1章 Java EE 6の概要 12/04/18 Beginning JavaEE6 勉強会(1) 5
  • 6. 本論に入る前に質問 • 次のうち正しい組み合わせを全て選びなさい 1. J2SE 1.4 – J2EE 1.4 2. J2SE 1.5 – J2EE 1.5 ggrks 3. Java SE 1.5 – Java EE 5 4. Java SE 5 - Java EE 5 5. Java SE 1.6 – Java EE 6 6. Java SE 6 – Java EE 6 7. Java SE 7 – Java EE 6 12/04/18 Beginning JavaEE6 勉強会(1) 6
  • 7. Java EE 6の概要 • 内部アーキテクチャ • Java EE 6で新しくなった点 12/04/18 Beginning JavaEE6 勉強会(1) 7
  • 8. 1.1 Java EE とは • Java Enterprise Edition • Javaで(主に)Webアプリケーションを構築するための 数々の仕様、およびその実装です。 – Servlet、JSP、EJB、JPAとか • Java EEの仕様を満たした機能を提供するアプリケー ションサーバをJava EEアプリケーションサーバと呼ぶ。 – GlassFish(Oracle) – WebLogic Server(Oracle) – WebSphere Application Server(IBM) – JBoss Application Server (Redhat) – Cosminexus (Hitachi) – Interstage (Fujitsu) – WebOTX (NEC) – Geronimo (Apache) • 同じアプリケーションならどのサーバでもが動く(は ず、、) • Tomcatはただのサーブレットコンテナです 12/04/18 Beginning JavaEE6 勉強会(1) 8
  • 9. 1.1.1 Java EE 6の歴史 Flexible Ease of Development Java EE 6 Web Services Pruning,Pro Rubustness Enterprise files,EJB Application J2EE 1.4 Java EE 5 Lite,JAX- RS,CDI Web Annotation J2EE 1.2 J2EE 1.3 Services, s,EJB3.0,JPA Manageme ,JAX-WS,JSF Servlet,JSP, EJB CMP, nt,Deploym Web Profile EJB,JMS, JCA ent Project JPE RMI/IIOP Managed Bean May 1998 Dec 1999 Sep 2001 Nov 2003 May 2006 Dec 2009 12/04/18 Beginning JavaEE6 勉強会(1) 9
  • 10. Java EE 6の全体像 http://www.slideshare.net/takakiyo/jjuc-ccc-2010-spring より拝借 12/04/18 Beginning JavaEE6 勉強会(1) 10
  • 11. ざっくり分類 • プレゼンテーション層→JSF • トランザクション層→EJB • データアクセス層→JPA • DI、コンポーネント管理→CDI • メッセージング→JMS • WEBサービス→JAX-WS、JAX-RS 12/04/18 Beginning JavaEE6 勉強会(1) 11
  • 12. 1.2 Java EE 6の新しいキーワード • さらなる開発容易性向上 – 5で大きく変わり、EJB、永続エンティティ、Web サービスがアノテーションベースに – 6ではJSFのマネージドBeanがアノテーションベース になり、XMLディスクリプタも不要に – Servlet3.0やCDI(Contexts and Dependency Injection)、Bean Validation…金魚本には載って いません • 古い技術のプルーニング • 新しい仕様の追加 12/04/18 Beginning JavaEE6 勉強会(1) 12
  • 13. 1.2.1 軽量化 • プルーニング – EJB 2.X CMP エンティティBean (JSR318) • JPAへ – JAX-RPC (JSR101) • JAX-WSへ – JAXR (JSR93) – Java EE アプリケーション・デプロイ (JSR88) • プロフィル – Java EEのサブセット or スーパーセットの提供 – Webプロファイル • Servlet 3.0, JSP 2.2, EJB Lite 3.1, JPA 2.0, JSF 2.2 等 12/04/18 Beginning JavaEE6 勉強会(1) 13
  • 14. プロファイル • Java EEのサブセットをプロファイルとして定 義可能 – Java EEコンテナが特定のプロファイルだけ実装し てもよい – WAS8.5ではより軽量なLiberty Profileを提供 Java EE Full Profile Web Profile 12/04/18 Beginning JavaEE6 勉強会(1) 14
  • 15. 1.2.2 操作性の向上 • JSFやServletの設定が簡単に • アノテーションの導入でXMLファイル(faces- config.xml、web.xml)への設定がかなり省略可 import javax.ejb.EJB; import javax.faces.bean.ManagedBean; @ManagedBean faces-config.xmlの public class BookController { <managed-bean>タグ内に @EJB 記述していた情報がアノ private BookEJB bookEJB; テーションで表現可能に。 private Book book = new Book(); (CDIを使うと@Namedで private List<Book> bookList; OK) public String doCreateBook() { book = bookEJB.createBook(book); bookList = bookEJB.findBooks(); return "listBooks.xhtml"; } } 12/04/18 Beginning JavaEE6 勉強会(1) 15
  • 16. 1.2.3 豊富な機能 • JAX-RSでREST対応! • JPA2.0でデータベース操作がより柔軟に • EJB3.1でSingleton Session Bean(アプリで唯一のインスタンス) import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; @Path("books") public class BookResource { @PersistenceContext private EntityManager em; @GET @Produces({"application/xml", "application/json"}) public List<Book> getAllBooks() { Query query = em.createNamedQuery("findAllBooks"); List<Book> books = query.getResultList(); return books; } } 12/04/18 Beginning JavaEE6 勉強会(1) 16
  • 17. 1.2.4 移植性の向上 • JNDI名が標準化され、どのコンテナでも同じア プリをデプロイできるようになった – これまではベンダ毎(GlassFish、JBoss、WebLogic) が独自に設定していたため、他製品へ移行する際に JNDI名を変更する必要があった • 組み込みコンテナが標準APIで用意され、 JavaSEでEJBの単体テストが簡単に行えるよう になった – EJBContaioner container = EJBContainer.createEJBContainer(p); – Hello hello = (Hello) container.getContext().lookup(“java:global/cl asses/Hello”); • 7章で! 12/04/18 Beginning JavaEE6 勉強会(1) 17
  • 18. 第2章 Javaと永続化 12/04/18 Beginning JavaEE6 勉強会(1) 18
  • 19. Javaと永続化 • データの永続化 – 通常はリレーショナルデータベースに永続化 – リレーショナルデータベースとJavaオブジェクト • 主キー・外部キー・テーブル結合などオブジェクト指向言語 とはまったく異なる表現 • Javaオブジェクトの永続化の方法 – シリアライゼーションによる永続化 • java.io.Serializableインタフェース • シンプルな機構であり、クエリ言語など機能が十分でない – リレーショナルデータベースによる永続化 • Java Database Connectivity(JDBC)によるアクセス • オブジェクト・リレーショナル・マッピング(ORM) – Hibernate – TopLink – Java Data Objects(JDO) – ◎Java Persistence API(JPA) 12/04/18 Beginning JavaEE6 勉強会(1) 19
  • 20. 2.1 JPA仕様の概要 • JavaEE5でJPA1.0が登場 • JPAはJDBCの上位の抽象層 • javax.persistenceパッケージ • コンポーネント構成 – ORM – エンティティマネージャ – Java Persistence Query Language – トランザクションとロック – コールバックとリスナ 詳しくは3-5章で! 12/04/18 Beginning JavaEE6 勉強会(1) 20
  • 21. 2.1.1 仕様の歴史 • TopLink – 1990年代初期からsmalltalk用に開発 – Javaでも利用可能 – しばらく標準化されず • JDO – 市場に浸透せず • 初期EJB – EJB1.0(1998) • Entity Container Managed Persistence(CMP)という重量級コンポーネントモデル – EJB1.1 • J2EE1.2の一部にEJB2.1 • CMP強化 • Hibernate – 軽量のオブジェクト指向永続性モデル – オープンソースで成功 • JPA1.0 – Hibernateの多くの設計原理を導入 – EJB3.0(JSR220)の一部に – JavaEE5に • JPA2.0 – JSR317 – JavaEE6に 12/04/18 Beginning JavaEE6 勉強会(1) 21
  • 22. 2.1.2 JPA2.0の新機能 • 単純データ型(String,Integerなど)のコレク ションと組み込み可能オブジェクトの個別テー ブルマッピング • Map型対応 • 楽観的ロックに加え、悲観的ロックのサポート • Criteria API導入 • JPQL拡張(case文など) • キャッシングAPI など(詳しくは3-5章で!) 12/04/18 Beginning JavaEE6 勉強会(1) 22
  • 23. 2.1.3 参照実装 • Eclipse Link 2.0 – Oracle社からEclipse Foundation寄贈されたOracle TopLinkを基盤として開発 • その他の実装では – Hibernate – Toplink – OpenJPA – DataNucleus • 以後、永続性プロバイダまたはプロバイダと呼 ぶ 12/04/18 Beginning JavaEE6 勉強会(1) 23
  • 24. 2.2 エンティティ • オブジェクト エンティティ • オブジェクトはメモリ内にのみ存在する概念 • エンティティはメモリ+データベース永続化さ れるオブジェクト • 具象型でも抽象型でもOK – 継承・リレーションシップのサポート • JPQLに問い合わせ • データベースにアクセスしていることを意識し ない 12/04/18 Beginning JavaEE6 勉強会(1) 24
  • 25. 2.2.1 オブジェクトリレーショナルマッピング • 永続化プロバイダがエンティティを認識し、 マッピングを解釈できるように次の2つの形式 で記述 – アノテーション:エンティティのコードにアノテー ション(javax.persistenceパッケージ)を記述 – XMLディスクリプタ:マッピングを外部XMLファイル に定義 • Configuration by exceptionの考え方 – デフォルトのマッピング規則(クラス名とテーブル 名は同じ、プロパティ名とカラム名は同じ、等)か ら外れる場合のみ設定すれば良い。 12/04/18 Beginning JavaEE6 勉強会(1) 25
  • 26. シンプルなBookエンティティ 永続性プロバイダに認識させるため のアノテーション @Entity public class Book { @Id 主キーの指定 @GeneratedValue private Long id; @Column(nullable = false) カラムの属性指定 private String title; private Float price; @Column(length = 2000) private String description; private String isbn; private Integer nbOfPage; private Boolean illustrations; // 以下セッター・ゲッター略 } 12/04/18 Beginning JavaEE6 勉強会(1) 26
  • 27. エンティティとテーブルのマッピング <<エンティティ>> Book Book +ID bigint nullable=false -id: Long TITLE varchar(255) nullable=false -title: String PRICE double nullable=true -price: Float DESCRIPTION varchar(2000) nullable=true -description: String ISBN varchar(255) nullable=true -isbn: String NBOFPAGE integer nullable=true -nbOfPage: Integer ILLUSTRATIONS smallint nullable=true -illustrations: Boolean 12/04/18 Beginning JavaEE6 勉強会(1) 27
  • 28. 2.2.2 エンティティのクエリ • エンティティを操作するAPIが用意されている • エンティティマネージャが中心に • CRUD操作やJPQLによる複雑なクエリ EntityManagerFactory emf = Persistence .createEntityManagerFactory("chapter02PU"); EntityManager em = emf.createEntityManager(); em.persist(book); • INSERT文やSELECT文を明示的に記述しなくても SQLが発行される 12/04/18 Beginning JavaEE6 勉強会(1) 28
  • 29. エンティティマネージャによる操作 <<インタフェース>> Main EntityManager DB +persist(entity: Object): void +find(entityClass: Class<T>, primaryKey: Object): <T> Book -id: Long -title: String -price: Float -description: String -isbn: String -nbOfPage: Integer -illustrations: Boolean 12/04/18 Beginning JavaEE6 勉強会(1) 29
  • 30. JPQL • エンティティに対するクエリ言語 • SQLに似ているが少し異なる “SELECT b FROM Book b WHERE b.title = „HOGE‟" • 動的クエリ(実行時に生成)、静的クエリ(コンパイル時 に決定)、ネイティブクエリ(SQL) • 静的クエリは名前付きで設定できる @Entity @NamedQuery(name = "findAllBooks", query = "SELECT b FROM Book b") public class Book { • createNamedQueryでクエリ取得 Query query = em.createNamedQuery(”findAllBooks"); 12/04/18 Beginning JavaEE6 勉強会(1) 30
  • 31. 2.2.3 コールバックとリスナ • エンティティはPOJO – newした段階ではメモリ内に存在するだけで、エン ティティマネージャに認識されない – EntityManager#persistでエンティティを管理対象 にし永続化する – エンティティマネージャがエンティティを管理する 場合は、エンティティに永続IDを設定してデータ ベースと同期する – エンティティマネージャから分離され、管理外に なった場合は普通のJavaオブジェクト – EntityManager#removeを実行するとデータベースか ら削除され、管理対象外になるが、GCが発生するま でメモリ内に残る 12/04/18 Beginning JavaEE6 勉強会(1) 31
  • 32. エンティティのライフサイクル new GC メモリ内に存 find 在 JPQL persist merge remove 分離状態 管理状態 削除済み状態 clear detach refresh setter データベース 12/04/18 Beginning JavaEE6 勉強会(1) 32
  • 33. コールバックとリスナ • エンティティで特定のライフサイクルイベント が発生したときの処理(コールバック)を定義で きる • エンティティクラスに直接コールバックを記述 できるし、リスナクラスに外出しすることも可 能(@EntityListeners) • 5章で! 12/04/18 Beginning JavaEE6 勉強会(1) 33
  • 34. コールバックアノテーション new GC メモリ内に存 在 @PostLoad @PreLoad @PostLoad @PostLoad @PreRemove 分離状態 管理状態 削除済み状態 @PreUpdate @PostUpdate @PreUpdate @PostUpdate @PostLoad データベース 12/04/18 Beginning JavaEE6 勉強会(1) 34
  • 35. ハンズオン演習 12/04/18 Beginning JavaEE6 勉強会(1) 35
  • 36. ハンズオン演習 • NetBeansとDerbyを使用してJPAアプリケーショ ンを作成 – http://ja.netbeans.org/ – 実行されたSQLが分かりやすいようにSQLログが出力 されるように設定されています • 参考 http://bit.ly/log4jdbc • ハンズオンプロジェクト – https://www.dropbox.com/sh/1axggidrrjz3rnb/OiM plS6LJW/beginning-javaee6 12/04/18 Beginning JavaEE6 勉強会(1) 36
  • 37. プロジェクトを開く 12/04/18 Beginning JavaEE6 勉強会(1) 37
  • 38. 練習1) エンティティクラスの作成 @Entity @NamedQuery(name = "findAllBooks", query = "SELECT b FROM Book b") public class Book { @Id @GeneratedValue private Long id; @Column(nullable = false) private String title; private Float price; @Column(length = 2000) private String description; private String isbn; private Integer nbOfPage; private Boolean illustrations; // 以下セッター・ゲッター略 } 12/04/18 Beginning JavaEE6 勉強会(1) 38
  • 39. 練習2) エンティティの生成 Book book = new Book(); book.setTitle("The Hitchhiker's Guide to the Galaxy"); book.setPrice(12.5F); book.setDescription("Science fiction comedy series created by Douglas Adams."); book.setIsbn("1-84023-742-2"); book.setNbOfPage(354); book.setIllustrations(false); 12/04/18 Beginning JavaEE6 勉強会(1) 39
  • 40. 練習3) エンティティの永続化 EntityManagerFactory emf = Persistence.createEntityManagerFactory("chapter02PU"); EntityManager em = emf.createEntityManager(); 12/04/18 Beginning JavaEE6 勉強会(1) 40
  • 41. 練習4) エンティティの永続化 • persistメソッドで永続化します EntityTransaction tx = em.getTransaction(); tx.begin(); em.persist(book); tx.commit(); em.close(); emf.close(); 12/04/18 Beginning JavaEE6 勉強会(1) 41
  • 42. mainメソッドを実行する前に • Derbyを起動する(接続情報は src/resources/META-INF/persistence.xml) • 「ウィンドウ」→「サービス」→「データベー ス」→「Java DB」→「データベースを作成」 12/04/18 Beginning JavaEE6 勉強会(1) 42
  • 43. 実行 • mainクラスで右クリック→「ファイルを実行」 • 「java.sql.SQLException: Table/View ‘SEQUENCE’ は、既に Schema ‘APP’ に存 在します。」なエラーログは無視 12/04/18 Beginning JavaEE6 勉強会(1) 43
  • 44. 演習 • 演習1) 練習で永続化したオブジェクトを更新してくだ さい。 • 演習2)演習1)で更新する前にflush()する場合、しない 場合とどう違うでしょうか。 • 演習3) 演習1)のエンティティを削除してください。 (削除前にflushしてください • 演習4) エンティティを100個登録してください。SQLは どのタイミング発行されましたか。(persistの後に printlnを入れてみてください) • 演習5) “findAllBooks”のNamedQueryを実行し、結果 をListで取得してください。 • 演習6) 管理済みエンティティを主キー(ID=1など)で一 件のみ取得してください。ただし登録後にはflush()し てください。 • 演習7) 演習6)でflush後にclear()する場合、しない場 合と比べてどう違うでしょうか。 12/04/18 Beginning JavaEE6 勉強会(1) 44