3.4 Contoh Bean Managed Persistence

dokumen-dokumen yang mirip
visit :

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

KA2173 Pemrograman Berorientasi Objek. 10 BAB X PENGAKSESAN DATABASE. H a l 64

Pemrograman Database Java

Arsitektur Aplikasi Perangkat Enterprise JDBC. Antonius Rachmat C, S.Kom, M.Cs

TUTORIAL SEDERHANA, JAVA (Swing) dan MYSQL (SELECT dan INSERT)

Pengenalan APLIKASI DATABASE

BAB IX KONEKSI POSTGRESQL PADA JAVA (Netbeans)

KA2173 Pemrograman Berorientasi Objek. 9 BAB IX PEMROGRAMAN GUI: SWING. H a l 56

BAB II MICROSOFT VISUAL STUDIO

Belajar Java 2 Tambah, Simpan & Cari Data di Netbeans dengan Database MySQL

Langkah-Langkah Pemrograman JDBC MENGIMPOR PACKAGE JAVA.SQL MEMANGGIL DRIVER JDBC

Koneksi Sederhana Database dengan C# (Lihat, Tambah, dan Hapus Data)

MySQL J A M K E T I G A

Didalam menampilkan peta yang sudah kita buat, kita akan menggunakan Slick2D sebagai sebuah frameworknya.

DAO design pattern diimplementasi dengan beberapa langkah, yaitu :

BAB IV HASIL DAN PEMBAHASAN

uri=" prefix="logic"%>

Tutorial Aplikasi Database Matakuliah Berbasis Java Swing Menggunakan Java Database Connectivity (JDBC)

Firma Firmansyah Adi B. Resume Web Service

Koneksi Java GUI-Database

Generated by Foxit PDF Creator Foxit Software For evaluation only. 17/09/ :46

TUGAS FRAMEWORK 2 FAKULTAS TEKNIK JURUSAN TEKNIK INFORMATIKA UNIVERSITAS DR. SOETOMO SURABAYA MOCHAMMAD ANNAS FAHRUDIN

Pada Java, sebuah objek remote adalah instans dari suatu kelas yang mengimplementasikan antarmuka remote.

Tutorial Jasper Report with JDBC Prerequisites: Jasper Report, ireport installed, MySQL installed, and NetBeans IDE

Pengenalan JavaScript

BAHASA PEMROGRAMAN JAVA

Pemrograman Jaringan 8.

Java Database Connectivity (JDBC) (Minggu 5 Praktikum II)

Java Database Connectivity (JDBC)

1

MODUL 6 JDBC (JAVA DATABASE CONNECTIVITY)

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

AKSES DATABASE MENGGUNAKAN JDBC

E-trik Ajax. Database MySQL. Dedi Alnas

CRUD Hibernate Java. Oleh: Yudi Setiawan

DASAR PEMOGRAMAN JAVA

Isi Data Source Name seperti gambar diatas: Kemudian pilih database dengan meng klik tombol select, tampil seperti gambar diatas:

PRAKTEK 1 CLASS, ATTRIBUTE, METHOD, DAN OBJEK

Badiyanto, S.Kom., M.Kom. PBO java

Tahap Instalasi PostgreSQL di Windows

Aplikasi CRUD dengan Visual Basic 2012 [APLIKASI CRUD DENGAN VISUAL BASIC 2012 & MYSQL] September 18, & MySQL. Bahtiar Imran

Bab Hasil Pembuatan Aplikasi

MODUL III STRUCTURED QUERY ANGUAGE (SQL)

BAB 5 Koneksi Database : SQL dan JDBC

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Mengkoneksikan Java Netbeans dengan Database di MySQL via XAMPP

MEMBUAT REPORT: REPORTPEMBELI

Tutorial Java Desktop 3 Melakukan Pengambilan data pada JavaDB

Kamus Perintah Hibernate Criteria Query MySQL

KONEKSI KE DATABASE DENGAN JDBC

TUGAS UTS PEMROGRAMAN JAVA

int i = 0; while (i < 10) { System.out.println( Informatika Unpas ); i++; }

Masukkan connector tersebut ke dalam direktori pada tempat jdk di-instal dengan path

Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle.

JAVA non OOP/IMW/PAGI. 1. Buat Database dengan Ms.Access dengan nama database perpustakaan.mdb 2. Buat tabel barang dengan struktur sbb:

KONSEP DASAR PEMROGRAMAN BERORIENTASI OBYEK

pilih New-Java Class Pada window New Class, ketik Person pada Class Name dan db.app pada Package

KONEKSI NETBEANS DENGAN DATABASE SQLITE

Disini kita akan bahas cara koneksi antara Database MySQL dengan VB.Net 2010, semoga dengan ini E-book ini bisa ingat sepanjang jaman ya ^ ^

CRUD Hibernate Java. Oleh: Yudi Setiawan

PENDAHULUAN TENTANG NETBEANS

Ahmad Zidni, S.T. SMK Gondang 2011

Pengajar dapat melihat Jadwal Mengajar Pengajar tersebut selama mengajar di

STEP BY STEP IN JAVA NETBEANS PROGRAMMING BY SUYANTO

KOTLIN, SIAPA SUKA. Dasar. P. Tamami BPPKAD Kab. Brebes

MODUL PRAKTIKUM KE 9

SERVLET. 5.1 Membuat Program Servlet

LAPORAN RESMI PRAKTIKUM II WEB DESAIN PENGENALAN JAVASCRIPT

Akses Database Menggunakan JDBC

Lampiran Utama. a. Struktur Organisasi. Factory Manager. Vice Factory Manager. Non Produksi. Produksi. Dept. Power. Dept Greyee. Dept.

SISTEM INFORMASI DATA SISWA

Sistem Distribusi Data Melalui COM+ Dengan Visual Basic

Ginanjar Utama Workbench Tempat Bekerja

- Menuliskan business logic dari aplikasi untuk mengakses data source

PEMAHAMAN DASAR DASAR JAVA

- Menuliskan business logic dari aplikasi untuk mengakses data source

Object Oriented Programming

LAPORAN MATA KULIAH PERANCANGAN SISTEM BERBASIS JAVA

Pembuatan Report menggunakan JasperReports dan ireport

GUI, Ev e Ev n e t n Handling, Ex ception Handling in Java

Pengenalan Bahasa Pemrograman Java

1. Silahkan anda buka project dari modul 4 anda yang sudah anda selesaikan 2. Tambahkan 1 buah view dengan nama FormMain

INSTRUKSI PENCABANGAN

Mudafiq R. Pratama

E-Trik Visual C++ 6.0

TUGAS AKHIR PEMOGRAMAN VISUAL APLIKASI PETERNAKAN AYAM BERBASIS JAVA DI PETERNAKAN AYAM MANDIRI

BAB IV IMPLEMENTASI DAN PEMBAHASAN SISTEM. Pada tahap ini merupakan tahapan implementasi dari

TABEL DATABASE TABEL - KODE BARANG TOKO INFOMART BARANG - NAMA BARANG - HARGA

Bengkel J2EE/Linux APLIKASI ENTERPRISE DENGAN JAVA

MODUL 8 MEMBUAT USER DAN MENGAKSES DATABASE

PEMROGRAMAN VB.NET. Koneksi Ke Database

LAPORAN RESMI. PRAKTIKUM TEKNOLOGI WEB Pengenalan JavaScript

Achmad Solichin

Koneksi Java ke MySQL Database. Edi Sugiarto, S.Kom, M.Kom

Eko Budhi Suprasetiawan

Praktikum 6a Melakukan koneksi dengan basis data

Prosedur Percobaan Program Tampilan

SmallSQL. (DBMS 100% Murni Java) SmallSQL. Basis Data II. Dosen Pengampu : Noor Ifada. Kelompok BD2-B5

PERINTAH DASAR MySQL

Transkripsi:

J2EE Dalam Aplikasi Enterprise + CD Pengarang : M. Shalahuddin dan Rosa A.S. Penerbit: INFORMATIKA Rp. 38.000 3.4 Contoh Bean Managed Persistence Fungsi dari contoh entity bean BMP yang akan dibuat adalah mengambil data semua user dari basis data dan mengirimkan hasilnya ke klien. Seperti pada session bean, entity bean juga memiliki framework atau struktur file dalam paket.jar. Contoh entity bean BMP pada subbab ini diberi nama contoh_bmp_userbmp. Struktur direktori yang harus dibuat adalah sebagai berikut: - Direktori contoh_bmp_userbmp i. Direktori jboss 1. Direktori META-INF a. file jboss.xml ii. Direktori src 1. Direktori contoh a. Direktori bmp i. File source code iii. File build.xml File jboss.xml adalah sebagai berikut : <jboss> <enterprise-beans> <entity> <ejb-name>userbmpbean</ejb-name> <jndi-name>userbmpbean</jndi-name> <resource-ref> <res-ref-name>jdbc/mysqlds_userbmp</res-ref-name> <resource-name>java:/mysqlds_userbmp</resource- www.gangsir.com 1

name> </resource-ref> </entity> </enterprise-beans> </jboss> File jboss.xml digunakan untuk memetakan ejb yang dibuat. Bagian <ejb-name>userbmpbean</ejb-name> dan <jndiname>userbmpbean</jndi-name> merupakan pemetaan nama bean, bagian <res-ref-name>jdbc/mysqlds_userbmp</res-ref-name> dan <resource-name>java:/mysqlds_userbmp</resource-name> merupakan pemetaan dari penamaan basis data yang akan digunakan pada bean. Pada tag resource-ref-name, isi dengan jdbc/<nama deklarasi basis data pada file mysql-ds.xml> dan resourcename dengan java/<nama deklarasi basis data pada file mysqlds.xml>. File-file source code adalah sebagai berikut : Remote Home Interface Nama file : UserBMPHome.java package contoh.bmp; import java.util.collection; import java.rmi.remoteexception; import javax.ejb.*; public interface UserBMPHome extends EJBHome { public UserBMP create(string id, String nama, String password) throws RemoteException, CreateException; public UserBMP findbyprimarykey(string id) throws FinderException, RemoteException; public Collection findall() throws FinderException, RemoteException; www.gangsir.com 2

Pada remote home interface dideklarasikan tiga method yaitu create, findbyprimarykey, dan findall dimana method create adalah method untuk memanggil bean, findbyprimarykey adalah method untuk mencari data berdasarkan primary key-nya, dan findall adalah method untuk mengambil semua data. Remote Interface Nama file : UserBMP.java package contoh.bmp; import javax.ejb.ejbobject; import java.rmi.remoteexception; public interface UserBMP extends EJBObject { public String getnama() throws RemoteException; public String getpassword() throws RemoteException; Method yang dapat diakses oleh klien hanya yang terdapat pada remote interface yang dalam contoh di atas adalah method getnama dan getpassword, getid tidak diperlukan karena BMP telah memiliki method getprimarykey() yang selalu dapat diakses oleh klien walaupun tidak dideklarasikan pada remote interface. Bean Class Nama file : UserBMPBean.java package contoh.bmp; import java.sql.*; import javax.sql.*; import java.util.*; import javax.ejb.*; import javax.naming.*; import java.rmi.remoteexception; public class UserBMPBean implements EntityBean { www.gangsir.com 3

private final static String dbname = "java:/mysqlds_userbmp"; private String id; private String nama; private String password; private EntityContext context; private Connection con; public String getnama() throws RemoteException { return nama; public String getpassword() throws RemoteException { return password; public String ejbcreate(string id, String nama, String Password) throws CreateException { try { insertrow(id, nama, password); catch (Exception ex) { throw new EJBException("ejbCreate: " + ex.getmessage()); this.id = id; this.nama = nama; this.password = password; return id; public String ejbfindbyprimarykey(string primarykey) throws FinderException { boolean result; try { result = selectbyprimarykey(primarykey); catch (Exception ex) { throw new EJBException("ejbFindByPrimaryKey: " + ex.getmessage()); if (result) { return primarykey; else { throw new ObjectNotFoundException("Baris dengan www.gangsir.com 4

id " + primarykey + " tidak ditemukan."); public void ejbremove() { try { deleterow(id); catch (Exception ex) { throw new EJBException("ejbRemove: " + ex.getmessage()); public void setentitycontext(entitycontext context) { this.context = context; public void unsetentitycontext() { public void ejbactivate() { id = (String) context.getprimarykey(); public void ejbpassivate() { id = null; public void ejbload() { try { loadrow(); catch (Exception ex) { throw new EJBException("ejbLoad: " + ex.getmessage()); public void ejbstore() { try { storerow(); catch (Exception ex) { throw new EJBException("ejbStore: " + ex.getmessage()); public void ejbpostcreate(string id, String nama, String password){ www.gangsir.com 5

private void makeconnection() { try { InitialContext ic = new InitialContext(); DataSource ds = (DataSource) ic.lookup(dbname); con = ds.getconnection(); catch (Exception ex) { throw new EJBException("Koneksi Basis Data Gagal " + ex.getmessage()); private void releaseconnection() { try { con.close(); catch (SQLException ex) { throw new EJBException("releaseConnection: " + ex.getmessage()); private void insertrow(string id, String nama, String password) throws SQLException { makeconnection(); String insertstatement = "insert into tbl_user values (?,?,?)"; PreparedStatement prepstmt = con.preparestatement(insertstatement); prepstmt.setstring(1, id); prepstmt.setstring(2, nama); prepstmt.setstring(3, password); prepstmt.executeupdate(); prepstmt.close(); releaseconnection(); private void deleterow(string id) throws SQLException { makeconnection(); String deletestatement = "delete from tbl_user where id =? "; PreparedStatement prepstmt = www.gangsir.com 6

con.preparestatement(deletestatement); prepstmt.setstring(1, id); prepstmt.executeupdate(); prepstmt.close(); releaseconnection(); private boolean selectbyprimarykey(string primarykey) throws SQLException { makeconnection(); String selectstatement = "select id " + "from tbl_user where id =? "; PreparedStatement prepstmt = con.preparestatement(selectstatement); prepstmt.setstring(1, primarykey); ResultSet rs = prepstmt.executequery(); boolean result = rs.next(); prepstmt.close(); releaseconnection(); return result; " + id private void loadrow() throws SQLException { makeconnection(); String selectstatement = "select nama, password " + "from tbl_user where id =? "; PreparedStatement prepstmt = con.preparestatement(selectstatement); prepstmt.setstring(1, this.id); ResultSet rs = prepstmt.executequery(); if (rs.next()) { this.nama = rs.getstring(1); this.password = rs.getstring(2); prepstmt.close(); else { prepstmt.close(); throw new NoSuchEntityException("Baris dengan id www.gangsir.com 7

+ " tidak ditemukan."); releaseconnection(); private void storerow() throws SQLException { makeconnection(); String updatestatement = "update tbl_user set nama =?," + "password =? " + "where id =?"; PreparedStatement prepstmt = con.preparestatement(updatestatement); prepstmt.setstring(1, nama); prepstmt.setstring(2, password); prepstmt.setstring(3, id); int rowcount = prepstmt.executeupdate(); prepstmt.close(); id " if (rowcount == 0) { throw new EJBException("Menyimpan baris dengan releaseconnection(); + id + " gagal."); public Collection ejbfindall() throws FinderException { Collection result; try { result = selectall(); catch (Exception ex) { throw new EJBException("ejbFindAll " + ex.getmessage()); return result; private Collection selectall() throws SQLException { makeconnection(); www.gangsir.com 8

String selectstatement = "select id " + "from tbl_user"; PreparedStatement prepstmt = con.preparestatement(selectstatement); ResultSet rs = prepstmt.executequery(); ArrayList a = new ArrayList(); while (rs.next()) { String id = rs.getstring(1); a.add(id); prepstmt.close(); releaseconnection(); return a; Bagian : try { InitialContext ic = new InitialContext(); DataSource ds = (DataSource) ic.lookup(dbname); con = ds.getconnection(); catch (Exception ex) { throw new EJBException("Koneksi Basis Data Gagal " + ex.getmessage()); pada method makeconnection merupakan proses mengaitkan basis data dengan ejb sedangkan bagian PreparedStatement prepstmt = con.preparestatement(insertstatement); adalah persiapan dalam melakukan pengaksesan basis data dengan menggunakan query dan bagian prepstmt.setstring(1, id) merupakan method yang telah ada dalam library yang berarti mengganti? pertama dari query yang didefinisikan dengan isi dari variabel id. www.gangsir.com 9

Method yang harus ada pada Bean Class walaupun tidak berisi apapun adalah : setentitycontext (EntityContext entitycontext) Method untuk mengeset entity context sehingga dapat mengaitkan bean dengan objek (binding). unsetentitycontext() Method untuk menghapus entity context. ejbremove() Method yang dijalankan saat bean mengalami terminasi. ejbload() ejbstore() Method untuk melakukan update pada basis data. ejbactivate() ejbpassivate() ejbfindbyprimarykey() Method untuk mencari record berdasarkan primary key. ejbcreate() Method untuk membuat sebuah record pada basis data. ejbpostcreate() Parameter method ini harus sama dengan method ejbcreate(). Primary Key Class Nama file : UserBMPPk.java package contoh.bmp; import java.util.random; public class UserBMPPk implements java.io.serializable { public String id; public UserBMPPk ( String id ) { this.id = id; public int hashcode() { return this.id.hashcode(); www.gangsir.com 10

public boolean equals( Object obj ){ if( obj instanceof UserBMPPk ){ return( id == ( (UserBMPPk )obj ).id ); return false; UserBMPPk.java merupakan kelas yang mendefinisikan primary key dari sebuah entity bean yang bertipe BMP. Method yang harus ada pada kelas tersebut adalah : hashcode() Method ini berfungsi untuk mengembalikan nilai id atau primary key yang unik. equals( Object obj ) Method ini berfungsi untuk mengecek keunikan dari primary key atau id. Membuat file JAR 1. Buka jendela command prompt, masuk ke direktori contoh_bmp_userbmp misalnya : C:\Projects\j2eetutorial\examples\ejb\contoh_bmp_Us erbmp>. 2. ketik perintah $> asant build. Perintah asant build digunakan untuk mengkompilasi source code, jika source code telah lulus kompilasi maka akan muncul pesan sebagai berikut : Buildfile: build.xml init: prepare: build: [javac] Compiling 3 source files to C:\Project\j2eetutorial\examples\ejb\c ontoh_bmp_userbmp\build www.gangsir.com 11

[javac] Note: C:\Project\j2eetutorial\examples\ejb\contoh_bmp_UserBMP\src \ contoh\bmp\userbmpbean.java uses unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details. BUILD SUCCESSFUL Total time: 5 seconds 3. Buka Deploytool dari Sun untuk melakukan packaging menjadi file JAR. Klik Start->All Program->Sun Microsystems->Application Server PE->Deploytool. 4. Klik File->New->Enterprise Bean. Hingga muncul jendela seperti pada gambar 15. Gambar 15 Jendela Awal New->Enterprise Bean 5. Klik Next. Hingga muncul jendela seperti pada gambar 16. www.gangsir.com 12

Gambar 16 Jendela Setting Pembuatan EJB Pilih Create New Stand-Alone JAR Module dan isi field JAR File dengan mengeklik browse untuk mencari direktori contoh_bmp_userbmp, dan isi file name dengan contoh_bmp_userbmp seperti gambar 17 dan klik create module file. Gambar 17 Jendela Browse www.gangsir.com 13

Klik edit contents pada jendela seperti gambar 16 hingga muncul jendela seperti gambar 18. Tambahkan direktori contoh pada available file dengan mengeklik direktori contoh dan klik tombol add kemudian klik OK. Kemudian klik next. Gambar 18 Jendela Add File 6. Kemudian akan muncul jendela seperti gambar 19. Isi field yang ada dengan mengeklik tanda panah, dan pilih pilihan yang ada, maka beberapa field akan terisi dengan sendirinya, dan pilih tipe entity bean. Klik next. www.gangsir.com 14

Gambar 19 Jendela Setting Pembuatan EJB 7. Pada jendela seperti pada gambar 20 pilih Management type Bean-Managed Persistence. Pilih Select a standard java class untuk primary key, karena primary key BMP yang dibuat bertipe string. Kemudian klik next. www.gangsir.com 15

Gambar 20 Jendela Setting pembuatan Entity Bean 8. Pada jendela seperti pada gambar 21 klik Finish Gambar 21 Jendela Konfirmasi Pembuatan EJB www.gangsir.com 16

Kemudian akan muncul jendela seperti pada gambar 22. Gambar 22 Jendela Deploy tool Isi field Resource Ref s seperti pada gambar 23, klik Add, isi Coded Name dengan jdbc/mysqlds_userbmp dengan tipe DataSource, isi JNDI Name dengan jdbc/mysqlds_userbmp, isi User Name dan Password dengan guest lalu tekan enter. www.gangsir.com 17

Gambar 23 Jendela Deploy tool -> Resource Ref s 9. Klik tombol save yang bergambar disket, maka file JAR akan terbentuk di dalam direktori contoh_bmp_userbmp. 10. Copy file JAR ke dalam direktori jboss yang ada di dalam direktori contoh_bmp_userbmp. Masuk ke direktori jboss pada command prompt. Ketik perintah $> jar xf conton_bmp_userbmp.jar. Kemudian ketik perintah $> jar cf contoh_bmp_userbmp.jar META-INF contoh. 11. Jalankan jboss dengan mengeklik run.bat pada direktori bin tempat server jboss di-copy pada komputer. 12. Copy contoh_bmp_userbmp.jar dalam <INSTAL>/server/default/deploy hingga muncul pesan sebagai berikut www.gangsir.com 18

11:09:17,943 INFO [EjbModule] Deploying UserBMPBean 11:09:18,453 INFO [EJBDeployer] Deployed: file:/c:/jboss- 4.0.2/server/default/deploy/contoh_bmp_UserBMP.jar Jika pesan di atas telah muncul maka entity bean telah berhasil dideploy oleh JBoss www.gangsir.com 19