materi v - E-learning Amikom

advertisement
MATERI V
KONEKSI KE DATABASE, METADATA
Agar project yang kita buat dapat berkoneksi dengan database yang kita punya, maka kita
harus mengkoneksikan database tersebut dengan project yang ada.
Proses koneksi :
a. Registrasi driver
b. Koneksi ke database
c. Keduanya harus ada dalam blok instruksi try{} catch(Exception) {}
Class/Interface yang dipakai:
Class Class
Method:
static Class forName(String namaclass)  registrasi class Driver
Cth:
Class c=Class.forName(“com.jdbc.mysql.Driver”);
Semua class yang dipakai untuk pengelolaan database, ada pada package java.sql.*
Class DriverManager
Method:
Connection getConnection(String lokasi,String username, String pwd)
Cth:
String lokasi=”jdbc:mysql://localhost/nama_db”;
String uname=”username”;
String pwd=”password”;
Connection
con=DriverManager.getConnection(lokasi,uname,pwd);
Connection  Interface
Exception:
Class ClassNotFoundException  Exception akan muncul jika ada kesalahan registrasi
class,
penggunaan method forName dari class Class.
Class SQLExceptionException untuk mengetahui kesalahan koneksi dan akses
database/table.
Contoh 1
Buat project baru, tambahkan object form dengan rancangan sbb:
Pada tombol TEST KONEKSI tambahkan kode program berikut:
Tambahkan library MYSQL ke project dengan cara, klik kanan Libraries pilih Add
Library
Akan muncul dialog pilihan sbb:
Pilih MySQL JDBC Driver, dan klik tombol Add Library.
Jalankan.
Contoh 2.
Jika project yang kita buat melibatkan banyak form, dan setiap form harus melakukan
koneksi ke database, akan lebih baik jika proses koneksi dibuat dalam class tersendiri
sehingga kita tidak perlu menuliskan proses koneksi berulang-ulang.
Buat project, tambahkan Form seperti pada contoh 1 sbb:
Pada project ini tambahkan juga object class (Pilih Java Class, bukan Java Form), dan
buatlah constructor pada class untuk proses koneksi sbb:
Pada form yang sudah dirancang sebelumnya tambahkan event berikut untuk tombol TES
KONEKSI, dan jalankan.
Contoh 3
Proses koneksi juga dapat diletakkan pada package yang berbeda dengan form.
Buat project baru, tambahkan form yang sama dengan contoh 1 dan contoh 2
sebelumnya.
Pada Source Package, Klik kanan package yang namanya sama dengan project anda, pilih
New  Java Package
Akan muncul dialog untuk mengisikan nama package. Ganti newpackage dengan data.
Klik tombol finish.
Akan terbentuk package baru dengan nama tigakoneksi.data dapat dilihat sbb:
Klik kanan package baru ini, tambahkan object Java Class, tuliskan code berikut:
Pada rancangan form, tambahkan event berikut untuk tombol TES KONEKSI 2 :
Jika muncul tanda kesalahan, klik kanan pada baris code program, pilih Fix Imports.
Otomatis akan ditambahkan nama package baru yang kita punya sbb:
Jalankan.
METADATA DATABASE
Metadata  data mengenai data
Interface yang digunakan:
Interface Connection
Method :
Statement createStatement()
 membuat object Statement (interface Statement) untuk mengirim perintah
query ke database
DatabaseMetaData getMetaData()
 mendapatkan metadata yang disimpan ke object DatabaseMetaData (interface
DatabasemetaData) dari database yang ada pada object Connection.
Interface DatabaseMetaData
Method:
ResultSet getTables(String catalog, String schema, String tablename, String[]
type)
 mengetahui informasi table-tabel dari database yang metadatanya ada di
DatabaseMetaData.
ResultSet getColumns(String catalog, String schema, String tablename, String
nmcolumn)
 mengetahui nama-nama field suatu tabel dari database yang metadatanya ada
di
DatabaseMetaData.
Interface Resultset
Method:
String getString(String nmcolumn)
 mengambil nilai kolom yang ditunjuk dari suatu ResultSet
Metadata dari suatu database :
1. Dapatkan metadata dari koneksi dan simpan ke DatabaseMetaData
DatabaseMetaData dbmd=con.getMetaData();
2. Dapatkan informasi table dari databasemetadata dengan fungsi getTables dan
simpan ke ResultSet
String[] type={“TABLE”};
ResultSet rs=dbmd.getTables(null,null,null,type);
3. Tampilkan informasi masing-masing table dengan perulangan (rs.next()) sbb:
a. Cari nama table
String nm_tbl=rs.getString(“TABLE_NAME”);
b. Cari struktur table
rs1=dbmd.getColumns(null,null,nm_tbl,null);
c. Tampilkan struktur masing-masing table dengan perulangan (rs1.next()) sbb:
String nm_field=rs1.getString(“COLUMN_NAME”);
String tp_field=rs1.getString(“TYPE_NAME”);
String lb_field=rs1.getString(“COLUMN_SIZE”);
Contoh
Menampilkan nama semua table yang ada dalam database.
Buat project baru, tambahkan object form dengan rancangan sbb:
Pada properties model (JTable) ubah menjadi Custom Code.
Tambahkan package baru, pada package ini tambahkan object Java Class, tuliskan code
untuk koneksi ke database.
Tuliskan juga instruksi berikut pada source form diatas.
Jalankan, akan didapat sbb:
Metadata dari suatu ResultSet
Interface yang terlibat:
Interface Statement
Method:
ResultSet executeQuery(String sql)
 eksekusi query yang menghasilkan satu ResultSet (Query SELECT)
Interface ResultSet
Method:
ResultSetMetaData getMetaData()
 mendapatkan metadata ResultSet.
Interface ResultSetMetaData
Method:
int getColumnCount()
 mendapatkan jumlah kolom suatu ResultSet
String getTableName(int i)
mendapatkan nama table
String getColumnName(int i)
 mendapatkan nama kolom ke i
String getColumnTypeName(int i)
 mendapatkan tipe kolom ke i
Langkah untuk mendapatkan metadata resultSet:
1. Buat Statement
Statement stt=con.createStatement();
2. Dapatkan ResultSet (eksekusi query)
String sql=”Select * from nm_tbl”;
ResultSet rs=stt.executeQuery(sql);
3. Dapatkan metadata
ResultSetMetaData rsmd=rs.getMetaData();
4. Dapatkan jumlah kolom
int j=rsmd.getColumnCount();
5. Dapatkan nama table
String nm_tbl=rsmd.getTableName(index);
6. Dapatkan nama field dan tipe, dengan perulangan
for(int i=1;i<=j;i++)
String nm_field=rsmd.getColumnName(i);
String tp_field=rsmd.getColumnTypeName(i);
Contoh
Pada project yang sudah ada, tambahkan form dengan rancangan sbb:
Pada Tombol OK, tuliskan code berikut
Jalankan, akan didapat sbb:
Download