Catatan Seorang Prajurit Kecil

Ikon

biarlah semua itu berjalan sesuai "skenario" NYA – jika kau telusuri, semua logika itu akan kau temukan

Penggunaan SQLite JDBC dan Troubleshoot java.sql.SQLException: SQL logic error or missing database


SQLite merupakan salah satu DBMS “portable” (saya sebut portable karena memang SQLite tidak terikat dengan arsitektur client server dan DBMS nya bisa berjalan tanpa banyak konfigurasi sana sini) dibandingkan dengan Microsoft Access, saya rasa SQLite lebih unggul karena bisa berjalan diberbagai device dan platform, walaupun secara arsitektur jauh lebih sederhana dibandingkan Microsoft Access (wajar juga sih, karena SQLite gratis alias free, bahkan open source sedangkan Microsoft Access harus keluar kocek dulu baru bisa digunakan, walaupun di Negara kita kebanyakan orang tidak memperhatikan sisi yang satu ini🙂 )

Anda bisa mengunjungi situs resminya SQLite untuk mendownload dan membaca referensi mengenai SQLite disini. Nah pada artikel ini, saya hanya sekedar ingin share seputar penggunaan SQLite dengan Program Java. Seperti biasa untuk menghubungkan DBMS dengan Java, resource yang kita gunakan adalah JDBC. Driver untuk JDBC SQLite bisa Anda download disini sedangkan Browser (Front End) untuk SQLite bisa Anda download disini.

Ok, semua peralatan tempur udah didownload kan? nah sekarang saatnya ke medan perang, jangan lupa siapkan secangkir kopi dan kacang mente…🙂

Sebelum melangkah jauh program, siapkan dulu Databasenya, buat sebuah database dan satu buah tabel menggunakan SQLite Browser yang sudah Anda download tadi (saya tidak akan menjelaskannya disini yang pasti SQLite akan membentuk sebuah file dengan extensi *.db sebagai database), dan buat sebuah tabel sederhana saja dengan field:

name (TEXT)
occupation(TEXT)

Oke database udah siap (jangan lupa simpan database di folder root project java yang akan kita buat sekarang), kemudian siapkan Editor favorit Anda (disini saya menggunakan Eclipse Helios), langsung aja setting konfigurasi agar Driver JDBC yang kita download tadi bisa terkait dengan Program Java yang akan kita buat (jika Anda menggunakan Eclipse, Anda bisa menambahkannya pada Build Path Configuration), jika sudah dihubungkan, tulis code berikut:

import java.sql.*;

public class Test {
public static void main(String[] args) throws Exception {
Class.forName(“org.sqlite.JDBC”);
Connection conn =
DriverManager.getConnection(“jdbc:sqlite:test.db”);
Statement stat = conn.createStatement();
stat.executeUpdate(“drop table if exists people;”);
stat.executeUpdate(“create table people (name, occupation);”);
PreparedStatement prep = conn.prepareStatement(
“insert into people values (?, ?);”);

prep.setString(1, “Gandhi”);
prep.setString(2, “politics”);
prep.addBatch();
prep.setString(1, “Turing”);
prep.setString(2, “computers”);
prep.addBatch();
prep.setString(1, “Wittgenstein”);
prep.setString(2, “smartypants”);
prep.addBatch();

conn.setAutoCommit(false);
prep.executeBatch();
conn.setAutoCommit(true);

ResultSet rs = stat.executeQuery(“select * from people;”);
while (rs.next()) {
System.out.println(“name = ” + rs.getString(“name”));
System.out.println(“job = ” + rs.getString(“occupation”));
}
rs.close();
conn.close();
}
}

 

** Script ini bukan asli buatan saya, melainkan saya download juga, cuman saya lupa dimana alamatnya, so..jika ini adalah script Anda, saya mohon maaf tidak bisa mencantumkan alamat website Anda sebagai sumber referensi…🙂

Sorry disini saya tidak akan menjelaskan secara detail script by script diatas, karena saya anggap Anda sudah menguasai dasar Java, jika Anda bingung comment aja di artikel ini atau kirim pertanyaan ke email saya.

Ada 1 hal yang cukup penting berkaitan dengan penggunaan SQLite ini (dan ini pernah cukup membuat saya pusing), coba Anda perhatikan script rs.close(), pastikan setelah Anda menggunakan ResultSet, Anda menutup kembali ResultSet tersebut dengan method close nya, jika tidak maka akan tampil Error seperti ini setelah Anda menggunakan kembali ResultSet ditempat yang lain:

java.sql.SQLException: SQL logic error or missing database
at org.sqlite.DB.throwex(DB.java:288)
at org.sqlite.DB.exec(DB.java:68)
at org.sqlite.Conn.commit(Conn.java:172)
at smogcheck.profile.ProfileLogic.saveProfile(ProfileLogic.java:98)
at smogcheck.profile.DlgProfileBengkel.save(DlgProfileBengkel.java:232)

……

Selamat mencoba🙂

Maaf jika tulisannya kurang terstruktur dan kurang jelas, karena memang saya “sedikit mengkorupsi” waktu kerja untuk menulis artikel ini, dan saya menulis artikel ini pun untuk mengingatkan saya jika nanti saya sendiri lupa, maklumlah namanya juga manusia…

 

Filed under: Algorithm and Programming, Database and DBMS, , , ,

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: