ActiveJDBC merupakan salah satu framework dari javalite yang digunakan sebagai ORM (Object-relational mapping). Sebagai sebuah ORM, ActiveJDBC dapat mensupport banyak database yaitu SQLServer, MySQL, Oracle, PostgreSQL, H2, SQLite3, DB2.
Seperti yang sudah dijelaskan pada postingan sebelumnya tentang Mengenal Javalite, bahwa framework yang terdapat pada javalite dapat digunakan atau di integrasikan dengan framework lain, lalu bagaimana menggunakan ActiveJDBC?
Setting library
Untuk menggunakan ActiveJDBC yang pertama kali harus dilakukan yaitu menambahkan library kedalam build tools yang digunakan pada project kita
Maven
<plugin> <groupId>org.javalite</groupId> <artifactId>activejdbc-instrumentation</artifactId> <version1.4.13</version> <executions> <execution> <phase>process-classes</phase> <goals> <goal>instrument</goal> </goals> </execution> </executions> </plugin> <dependencies> <dependency> <groupId>org.javalite</groupId> <artifactId>activejdbc</artifactId> <version>1.4.13</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.34</version> </dependency> </dependencies>
Gradle
buildscript { repositories { mavenCentral() } dependencies { classpath group: 'org.javalite', name: 'activejdbc-gradle-plugin', version: '2.0' } } apply plugin: 'org.javalite.activejdbc' dependencies { // ActiveJDBC compile group: 'org.javalite', name: 'activejdbc-gradle-plugin', version: '2.0' }
Membuat Model
Untuk membuat sebuah model dapat dilakukan dengan mudah, yaitu dengan membuat sebuah class yang mengextends class Model yang disediakan ActiveJDBC. Dengan mengextends class Model dari ActiveJDBC, class yang kita buat akan secara langsung termapping dengan table yang sudah didefinisikan pada anotasi @Table
@Table(“mst_pegawai”) Public class Pegawai extends Model {}
Koneksi Database
Untuk koneksi database menggunakan ActiveJDBC cukup dengan memanggil fungsi Base.open dengan parameter driver, url, username dan password database. Seperti contoh berikut
Base.open("com.mysql.jdbc.Driver", "jdbc:mysql://localhost/simple", "user","password");
Operasi CRUD
Contoh simple penggunaan ActiveJDBC untuk seleksi data adalah sebagai berikut
List<Pegawai> daftarPegawai = Pegawai.where(“first_name = ?”, “John”); Pegawai pegawai = daftarPegawai.get(0);
Method where() diatas akan digenerate menjadi sebuah query select * from mst_pegawai where first_name = ‘John’. Untuk menambah record baru atau insert dapat menggunakan cara seperti berikut
Pegawai p = new Pegawai(); p.set(“first_name”, “John”); p.set(“last_name”, “Doe”); p.saveIt();
Dengan kode diatas maka akan ditambahkan pegawai baru dengan first_name = John dan last_name = Doe. Untuk melakukan update data, dapat dengan melakukan seleksi pada data yang akan diupdate, lalu update data seperti contoh berikut
Pegawai pegawai = Pegawai.findById(1); Pegawai.set(“last_name”, “Doe2”); Pegawai.saveIt();
Sedangkan untuk fungsi delete, dapat dilakukan seperti fungsi update yaitu melakukan seleksi data yang akan didelete lalu panggil fungsi delete()
Pegawai pegawai = Pegawai.findById(1); pegawai.delete();
Transaction
Fungsi terakhir yang akan penulis jelaskan yaitu transaction. Untuk melakukan transaction dapat memulai dengan memanggil fungsi Base.openTransaction(), untuk melakukan commit dapat memanggil fungsi Base.commitTransaction(), sedangkan untuk melakukan rollback dapat memanggil fungsi Base.rollbackTransaction(). Berikut contoh penggunaan transaction pada ActiveJDBC
try{ Base.open("com.mysql.jdbc.Driver", "jdbc:mysql://localhost/simple", "user","password"); Base.openTransaction(); Pegawai p = new Pegawai(); p.set(“first_name”, “John”); p.set(“last_name”, “Doe”); p.saveIt(); Base.commitTransaction(); }catch(Exception e){ Base.rollbackTransaction() }finally{ Base.close() }