Persiapan
- Silahkan mengunduh JDBC driver untuk PostgreSQL, sesuaikan versinya dengan versi PostgreSQL yang terinstall.
- Buat database dan definisikan tabel serta isikan sedikit data:
% createdb --echo --template=template0 --encoding=UNICODE stmik-akakom
Password:
CREATE DATABASE "stmik-akakom" ENCODING 'UNICODE' TEMPLATE template0;
% psql stmik-akakom
Password:
psql (8.4.3)
Type "help" for help.
stmik-akakom=# create table mahasiswa (nim char(9), nama varchar(100));
CREATE TABLE
stmik-akakom=# insert into mahasiswa values ('123456789','Zaky A. Aditya');
INSERT 0 1
stmik-akakom=# insert into mahasiswa values ('234567890','Bambang Purnomosidi D. P.');
INSERT 0 1
stmik-akakom=#
Perintah-perintah sesi di atas adalah perintah untuk membuat database (createdb adalah script yang dijalankan di shell, template yang digunakan adalah template0 karena kita akan menggunakan encoding UNICODE. database yang kita buat adalah "stmik-akakom". Setelah itu, kita menggunakan perintah psql untuk mengakses database yang baru kita buat tadi, perintah yang digunakan adalah CREATE TABLE untuk membuat table dan INSERT untuk memasukkan 2 data.
Setelah itu, konfigurasikan variabel lingkungan untuk CLASSPATH (Scala juga menggunakan variabel CLASSPATH).
% export CLASSPATH=$CLASSPATH:postgresql-8.4-701.jdbc4.jar:.
Source Code
Silahkan melihat pada komentar untuk penjelasan tentang koneksi menggunakan JDBC4.
/*
* testJDBC.scala
* Contoh source code untuk mengakses database menggunakan JDBC dari Scala
* @author: bpdp - 16 Mei 2010
*
*/
// import Class yang diperlukan dari JDK
import java.sql.{Connection, DriverManager, ResultSet}
import java.util.Properties
object TampilkanDaftarMahasiswa {
// Konfigurasi URL untuk koneksi dan properti untuk koneksi
val url = "jdbc:postgresql://localhost/stmik-akakom"
var props = new Properties
props setProperty("username","myname")
props setProperty("password","mypasswd")
// Inisialisasi driver PostgreSQL
Class.forName("org.postgresql.Driver");
// Koneksi ke PostgreSQL
val connection = DriverManager getConnection(url,props)
def main(args: Array[String]) =
try {
// Query menggunakan Statement
val statement = connection createStatement (ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)
val rs = statement executeQuery "select * from mahasiswa order by nim"
// Iterasi untuk mengambil data
while (rs next) {
println (rs getLong "nim")
println (rs getString "nama")
}
statement close
} catch {
case e => e printStackTrace
} finally {
connection close
}
}
Kompilasi dan Eksekusi
Untuk mengkompilasi, gunakan perintah berikut:
% scalac testJDBC.scala
Hasil dari kompilasi ini adalah sebagai berikut:
% ls -la total 524 drwxr-xr-x 2 bpdp users 4096 May 16 20:18 . drwxr-xr-x 5 bpdp users 4096 May 16 10:02 .. -rw-r--r-- 1 bpdp users 2420 May 16 20:09 TampilkanDaftarMahasiswa$.class -rw-r--r-- 1 bpdp users 1282 May 16 20:09 TampilkanDaftarMahasiswa.class -rw-r--r-- 1 bpdp users 510170 May 16 10:02 postgresql-8.4-701.jdbc4.jar -rw-r--r-- 1 bpdp users 1226 May 16 20:09 testJDBC.scala %
Untuk menjalankan program, gunakan nama object:
% scala TampilkanDaftarMahasiswa 123456789 Zaky A. Aditya 234567890 Bambang Purnomosidi D. P. %
Selamat mencoba :)
0 comments:
Post a Comment