Membuat Fungsi Custom Pada Apache Derby

Pada kali ini saya akan membahas mengenai hasil ngoprek saya yaitu membuat fungsi custom pada database apache derby. Kegiatan ini saya lakukan untuk mendukung kegiatan ngoprek saya yang lain yang berkaitan dengan syntax sql. Karena keterbatasan syntax sql yang terdapat pada Apache Derby memaksa saya untuk membuat fungsi sendiri agar dapat memenuhi fungsi sesuai dengan kebutuhan saya. Untuk mempersiapkan kegiatan ngoprek kali ini yang perlu disiapkan adalah membuat database pada Apache Derby bisa dilihat di link JAVA DB Netbeans. Adapun langkah-langkah yang harus dilakukan adalah sebagai berikut:

1. Membuat Fungsi dengan JAVA dan Build Menjadi File *.jar
Pada langkah ini kita harus membuat fungsi dengan java lalu kemudian build menjadi file *.jar. Pada contoh yang akan saya buat pada kegiatan ini adalah membuat fungsi untuk mengkonversi data dari timestamp menjadi string. Adapun fungsi yang dimaksud dapat dilihat pada source berikut:

package id.web.herpur.tools;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 *
 * @author hape
 */
public class DateToString {
    public static String convert2String(Timestamp ts, String pattern) {
        try {
            Date date = new Date(((Timestamp)ts).getTime());
            SimpleDateFormat sdf = new SimpleDateFormat(pattern);
            return sdf.format(date);
        }catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
    }
}

2. Meregistrasi File *.jar ke Apache Derby
Langkah berikutnya setelah file jar terbentuk adalah meregistrasikan file jar tersebut ke dalam database Apache Derby yang telah kita buat. Adapun untuk melakukan registrasi tersebut anda harus connect terlebih dahulu ke dalam database yang sudah kita buat kemudian jalankan perintah berikut di windows SQL Command. Untuk keterangan lebih lanjut mengenai proses registrasi file jar bisa dilihat pada link http://db.apache.org/ atau wiki.

CALL SQLJ.INSTALL_JAR ('path_dari_lokasi_jar_yang_akan_di_register', 
	'APP.nama_jar_yang_akan_di register', --tanpa ekstensi jar
	0);

CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY 
	('derby.database.classpath', 'APP.nama_jar_yang_akan_di register');

3. Buat Fungsi yang Akan dibentuk Untuk Memenuhi Kebutuhan Kita
Setelah Kita meregister file jar kemudian buat fungsi berikut untuk kemudian dijalankan di Windows SQL Command di Apache Derby.

CREATE FUNCTION TIMESTAMP_TO_CHAR(dateParam TIMESTAMP, str VARCHAR(20)) RETURNS VARCHAR(20) 
    PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA 
    EXTERNAL NAME 'id.web.herpur.tools.DateToString.convert2String'

Untuk keterangan lebih lanjut dari langkah untuk membuat fungsi di apache derby dapat dilihat pada link membuat fungsi di apache derby.

4. Jalankan Query Untuk Testing
Setelah semua proses selesai dilakukan tentunya kita ingin tahu apakah fungsi yang sudah kita buat tersebut sudah sesuai dengan yang kita inginkan atau belum. Untuk itu kita harus melakukan testing untuk melihat hasilnya. Adapun untuk melakukan testingnya dapat dilakukan dengan cara menjalankan query berikut di Windows SQL Command.

SELECT TIMESTAMP_TO_CHAR(CURRENT_TIMESTAMP, 'yyyyMMddHHmmssSSS') 
FROM SYSIBM.SYSDUMMY1;

Pada query diatas karakter yyyyMMddHHmmssSSS merupakan formatter dari java yang bisa dilihat di link java date formatter berikut. Demikian kegiatan ngoprek yang sudah saya lakukan, semoga dapat bermanfaat. Terima Kasih.

Source Code: JAVADerbyCustomTools
Sumber: http://www.danvega.org/

Leave a Reply