Tampilkan postingan dengan label Database. Tampilkan semua postingan

Rabu, 15 Agustus 2012

JDBC : Bekerja dengan perintah SQL




Nah, setelah kita berhasil membuat komunikasi sederhana dengan database engine (di sini), saatnya kita bekerja dengan perintah-perintah SQL, untuk memanipulasi data pada server database. Perintah-perintah SQL pada dasarnya hanya memiliki 4 fungsi utama yang biasa disebut CRUD (Create,Read,Update,Delete). Yaitu, untuk menciptakan data, membaca data, mengubah data, dan menghapus data. Meskipun memang terdapat beberapa perintah lain dalam SQL untuk mengatur kondisi data dan fungsi manipulasi. Namun saat ini, yang akan dibahas adalah perintah-perintah CRUD tersebut.



Untuk menggunakan perintah SQL dalam pemrograman (baca : Java), kita menggunakan pustaka java.sql. Pustaka ini memuat kelas-kelas umum untuk bekerja dengan database. Kelas-kelas tersebut antara lain : Connection, Statement, ResultSet, dll. Namun pada kesempatan saat ini kita akan membahas mengenai kelas Statement (dan saudara-saudaranya).

JDBC menyediakan 3 macam bentuk statement, yaitu : (1) Statement, (2) PreparedStatement, dan (3) CallableStatement. Ketiganya memiliki tujuan yang berbeda dalam penggunaannya.

Bentuk paling dasar adalah Statement. Kita menggunakan bentuk ini untuk mengirim perintah SQL tanpa menggunakan parameter. Format instruksinya :

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(“SELECT * FROM mahasiswa”);

Bentuk kedua adalah PreparedStatement. Bentuk ini memiliki kemampuan lebih baik daripada bentuk yang pertama, terutama jika kita akan menggunakan perintah SQL berulang-ulang. PreparedStatement mengandung parameter, yang akan diisi saat perintah dieksekusi. Misalnya :

String sqlComm = “INSERT INTO mahasiswa(id,nama) VALUES(?,?)”;
PreparedStatement pStmt = conn.prepareStatement(sqlComm);
pStmt.clearParameters();
pStmt.setString(1, “090213016”);
pStmt.setString(2, “Deddy Kakunsi”);
pStmt.executeUpdate();

perlu diperhatikan, untuk mengisi nilai parameter digunakan method setter yang sesuai dengan tipe data (native, maupun Wrapper).

Bentuk ketiga adalah CallableStatement. Bentuk ini digunakan bila kita akan dalam database server terdapat stored procedures dan kita akan mengirim/mengambil data menggunakan prosedur tersebut. Contoh penggunaan CallableStatement :

misalnya kita akan memanggil prosedur bernama get_name(in varchar username, out varchar lastname)

String sqlComm = “{call get_name(?,?)}”;
CallableStatement cStmt = conn.prepareCall(sqlComm);
cStmt.setString(1, “Deddy”);
cStmt.registerOutParameter(2, Types.STRING);
cStmt.execute();
String lastName = cStmt.getString(2);

Demikian dulu pembahasan untuk kali ini.kita sambung lagi
Read More

Selasa, 14 Agustus 2012

Kelas Database pada Java (JDBC)



Sistem Basis Data pada Java
Database merupakan salah satu bagian inti dari Sistem Informasi yang menyimpan data untuk proses pengolahan nantinya. Agar aplikasi bisa mengakses data dari suatu database engine, maka diperlukan suatu mekanisme koneksi antara aplikasi dan database tersebut. Pada bahasa pemrograman java terdapat kumpulan kelas yang digunakan khusus untuk koneksi database.
Komponen database pada java mengikuti standar SQL (Structured Query Language), sehingga library fungsinya dapat ditemukan dalam package java.sql.* dan javax.sql.*.
Terdapat 3 langkah utama untuk melakukan koneksi ke database : (1) membuat koneksi sengan server database. (2) Membuat perintah dan mengirimkannya ke server database. (3) menerima dan mengolah hasil.
Untuk mendapatkan koneksi database, diperlukan 3 langkah, yaitu :
1. Menginstalasi driver database yang digunakan
2. menciptakan instance object dari server
3. melakukan registrasi koneksi ke database
Setelah berhasil dilakukan, maka kita hanya perlu melakukan registrasi koneksi, dan menciptakan koneksi melalui interface Connection berdasarkan URL disertai dengan username dan password database
JDBC
Untuk melakukan koneksi ke suatu sumber data, diperlukan database driver yang akan menjadi jembatan antara Aplikasi dengan Database. Database driver ini bersifat spesifik untuk setiap sumber data. Misalnya, Database Driver MySQL hanya bisa digunakan untuk melakukan koneksi ke database MySQL, begitu juga dengan Database Driver PostgreSQL hanya untuk PostgreSQL.
Komponen utama JDBC
Driver adalah komponen untuk menangani masalah komunikasi dengan server database.
DriverManager adalah komponen untuk menangani objek driver.
Connection adalah komponen yang menyimpan koneksi ke database.
Statement adalah komponen yang menangani perintah SQL ke database.
ResultSet adalah komponen yang menyimpan data hasil perintah ke database.
SQLException adalah komponen untuk menangani kesalahan-kesalahan yang mungkin terjadi saat pengolahan database.
Memanggil Driver JDBC
Untuk menghubungkan database MySQL dengan Java, perlu dilakukan pemanggilan driver JDBC. Driver adalah sebuah library yang berisi perintah-perintah untuk berkomunikasi dengan server database.
Sebelum mulai menulis program, import terlebih dahulu package java.sql.*. karena di dalam library ini terdapat kelas-kelas seperti DriverManager, Connection, dan ResultSet.
import java.sql.*
Untuk memanggil driver JDBC bisa menggunakan
Class.forName(namaDriver);

atau
Class.forName(namaDriver).newInstance();
Keduanya bertujuan untuk registrasi Class Driver. Perintah tersebut dapat menghasilkan error bila driver tidak ditemukan, sehingga perlu dilakukan penanganan, menggunakan ClassNotFoundException.
try {
            // perintah pemanggilan driver
} catch (ClassNotFoundException exc) {
            // penanganan kesalahan
}
Membangun Koneksi
Setelah berhasil melakukan pemanggilan driver, maka dilanjutkan dengan membangun koneksi. Untuk membuat koneksi tidak perlu dengan menciptakan object baru. Karena pembuatan object telah dienkapsulasi pada kelas DriverManager. Jadi, untuk mendapatkan object hanya dengan syntax :
DriverManager.getConnection(url, username, password);
Sama seperti pemanggilan driver, perintah kali ini dapat menyebabkan error. Untuk itu, diperlukan penanganan. Namun, kali ini menggunakan SQLException, karena kesalahan yang mungkin terjadi ada di dalam database engine.
try {
            Connection conn = DriverManager.getConnection(URL, username, password);
} catch (SQLException exc) {
            // penanganan kesalahan
}

URL bisa dibuat dengan format : Jdbc:<DBServer>://[host]:[port]/<NamaDB>
Username : user pada server database
Password : password untuk user diatas
Membuat Object Statement
Statement merupakan objek interface yang diciptakan dari method Connection.createStatement(). Objek Statement digunakan untuk penerimaan statement SQL tanpa parameter.
Perintah Statement :
Statement stat = Connection.createStatement();
Melakukan Eksekusi
Sekarang, objek statement telah dibuat dan sudah bisa digunakan untuk mengirim perintah SQL, kemudian mengeksekusinya. Untuk melakukan eksekusi, dibagi menjadi 2 bagian.
Pertama, menggunakan method executeQuery(). Method ini dipakai untuk perintah SELECT,sehingga akan memberikan nilai kembalian dalam bentuk ResultSet.
Kedua, menggunakan method executeUpdate(). Method ini dipakai pada perintah INSERT, UPDATE, dan DELETE. Untuk melakukan perintah DELETE :
PreparedStatement stat = conn.prepareStatement(perintah/query delete);
stat.executeUpdate();
Menerima hasil dan memprosesnya
Hasil statement akan memberikan hasil, jikaperintah yang digunakan adalah SELECT. Hasil kembalian berupa ResultSet.
            ResultSet rs = stat.executeQuery(perintah SQL);
            If( rs.next() ) {
                        // ambil nilai dan masukan ke dalam variabel
            }

langkah-langkah diatas merupakan cara yang paling sederhana untuk melakukan akses database pada bahasa pemrograman Java
Read More

MySQL Database


MySQL adalah
perangkat sistem manajemen basis data opensource
dibawah lisensi GNU General Public Licence. MySQL merupakan database
terpopupler di dunia saat ini yang sering menjadi pilihan dalam penggunaan
aplikasi berbasis
web.
Paket
instalasi
MySQL dapat di download di
http://www.mysql.com sesuai dengan sistem operasi yang digunakan.

Read More