Entity Bean EJB 3 0 7 2006 85
Entity Bean 概要 EJB 3. 0 コース 第 7回 2006年 8月5日 1
Entity Beanとは? 3
Entity Bean の作成 5
テーブル定義 create table emp ( empno DECIMAL(4) primary key, ENAME VARCHAR(10), SAL DECIMAL(10, 2) ); 6
Employee. java (1) // Entity Bean である @Entity // EMP テーブルと関連づけられる @Table(name = "EMP") public class Employee implements java. io. Serializable { …… } 7
Employee. java (3) // テーブル中の各項目に対応する // setter と getter (= プロパティ) を用意 // プロパティとテーブル中の項目名が同一の場合は // アノテーションをつける必要はない public void set. Emp. No(int emp. No) {. . . } public String get. Ename() {. . . } public void set. Ename(String e. Name) {. . . } public double get. Sal() {. . . } public void set. Sal(double sal) {. . . } 9
Session Facade と Entity Manager 12
インタフェースの準備 @Remote public interface Employee. Facade { // 従業員の情報をデータベースに追加 public void add. Employee( int emp. No, String name, double salary); // 主キーから対応する従業員のデータを取得 public Employee find. Employee. By. Emp. No(int emp. No); } 14
Stateless Session Bean import javax. persistence. Entity. Manager; @Stateless public class Employee. Facade. Bean implements Employee. Facade { @Persistence. Context(……) private Entity. Manager em; public Employee find. Employee. By. Emp. No(int emp. No) {. . . } public void add. Employee(int emp. No, String n, double sal) {. . . } } 15
Entity. Manager#find public Employee find. Employee. By. Emp. No(int emp. No) { return ((Employee) em. find("Employee", emp. No)); } n Entity. Manager の find メソッドは、データベースから emp. No という主キーで指定したデータを検索し、検索結果 として Employee オブジェクトを返す。 17
Entity. Manager#persist public void add. Employee(int emp. No, String e. Name, double sal) { Employee emp = new Employee(); emp. set. Emp. No(emp. No); emp. set. Ename(e. Name); emp. set. Sal(sal); em. persist(emp); } n Entity. Manager の persist メソッドで、Entity Bean を永続 化している。つまり、データをデータベースで管理するように している。 18
クライアントプログラム @EJB static Employee. Facade ef; ………… int emp. No = Integer. parse. Int(args[0]); String name = args[1]; double sal = Double. parse. Double(args[2]); ef. add. Employee(emp. No, name, sal); 20
HSQLDBの利用設定 (2) n %ORACLE_HOME%/j 2 ee/home/config/datasources. xml にHSQLDBの情報を追加 <connection-pool name="HSQLDB Connection Pool"> <connection-factory-class="org. hsqldb. jdbc. Driver" user="sa” password="" url="jdbc: hsqldb: hsql: //localhost/"> </connection-factory> </connection-pool> <managed-data-source name="HSQLDB Data Source" connection-pool-name="HSQLDB Connection Pool" jndi-name="jdbc/Hsqldb. DS"/> 23
HSQLDBの利用設定 (3) %ORACLE_HOME%/j 2 ee/home/config/applicati on. xml を編集 n デフォルトのデータソースを指定 <orion-application xmlns: xsi="http: //www. w 3. org/2001/XMLSchem a-instance" xsi: no. Namespace. Schema. Location="http: //xmln s. oracle. com/oracleas/schema/orion-application -10_0. xsd" autocreate-tables="true" default-data-source="jdbc/Hsqldb. DS" n 24
テーブルの作成 (2) create table emp ( empno DECIMAL(4) primary key, ENAME VARCHAR(10), SAL DECIMAL(10, 2) ); 27
- Slides: 31