pada artikel sebelumnya saya telah membahas tentang cara membaut koneksi ke database dimana saya menggunakan database MySQL. pada artikel ini saya akan bahas tentang Statement, apa itu Statement?
Statement merupakan kelas yang digunakan untuk melakukan proses manipulasi data, seperti INSERT, UPDATE, DELETE, SELECT
bahkan bisa digunakan untuk melakukan proses CREATE
Statement ini terdapat dalam kelas java.sql, dan untuk membuat Statement, kita terlebih dahulu harus memiliki Connection, dan untuk membuat Statement caranya seperti dibawah ini :
java.sql.Statement = connection.createStatement();
connection
diatas merupakan koneksi yang telah saya bahas pada artikel sebelumnya. agar lebih mudah, alangkah baiknya dibuat sebuah kelas ConnectionUtil yang digunakan untuk membuat Connection, contohnya seperti pada kode dibawah ini :package echo.khannedy.belajarjdbc; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; public class ConnectionUtil { private static Connection connection; static { try { Driver driver = (Driver) Class.forName("com.mysql.jdbc.Driver").newInstance(); DriverManager.deregisterDriver(driver); String url = "jdbc:mysql://localhost:3306/belajar_jdbc"; String username = "belajar"; String password = "belajar"; connection = DriverManager.getConnection(url, username, password); } catch (Throwable t) { t.printStackTrace(); } } public static Connection getConnection() { return connection; } }jangan lupa sesuaikan seting url, username dan password sesuai dengan setting database anda. gan gunakan Driver yang sesuai dengan database anda juga. Dan jadi untuk membuat Statement, kita menggunakan kode seperti dibawah ini :
// membuat koneksi Connection connection = ConnectionUtil.getConnection(); // membuat statement Statement statement = connection.createStatement();sebelum kita melakukan proses INSERT, UPDATE, DELETE menggunakan Statement, kita buat dulu tabel yang ada dalam database, contohnya seperti ini :
mysql> create table contoh( -> id integer primary key auto_increment, -> contoh varchar(45) not null, -> lagi varchar(45) not null -> ); Query OK, 0 rows affected (0.06 sec)sekarang kita sudah punya sebuah table
contoh
dengan kolomid, contoh dan lagi
. sekarang kita buat sebuah metode insert, update dan delete (pada artikel ini saya tidak akan bahas tentang select, karena hal ini akan dibahas di bagian Result Set)package echo.khannedy.belajarjdbc; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; public class Main { public void insertData(String contoh, String lagi) throws SQLException { Connection connection = ConnectionUtil.getConnection(); Statement statement = connection.createStatement(); statement.executeUpdate("INSERT INTO contoh VALUES (NULL, '" + contoh + "', '" + lagi + "')"); statement.close(); } public static void main(String[] args) throws SQLException { Main main = new Main(); main.insertData("apa aja", "terserah"); main.insertData("Eko Kurnaiwan", "Khannedy"); } }seperti terlihat pada kode diatas, untuk melakukan proses insert update delete, kita menggunakan metode executeUpdate(), dan parameternya adalah perintah SQL yang akan dieksekusi ke database, dan pastinya harus bahasa SQL yang dimengerti oleh database yang digunakan 😀
jika kode diatas tersebut dijalankan maka akan melakukan proses INSERT sebanyak 2 kali yaitu data “apa aja” “terserah” sama “Eko Kurnaiwan” “Khannedy”, sehingga dalam databasenya akan terlibat seperti ini :
mysql> select * from contoh; +----+---------------+----------+ | id | contoh | lagi | +----+---------------+----------+ | 1 | apa aja | terserah | | 2 | Eko Kurnaiwan | Khannedy | +----+---------------+----------+ 2 rows in set (0.02 sec)dibawah ini adalah contoh kode update data
package echo.khannedy.belajarjdbc; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; public class Main { public void updateData(Integer id, String contoh, String lagi) throws SQLException { Connection connection = ConnectionUtil.getConnection(); Statement statement = connection.createStatement(); statement.executeUpdate("UPDATE contoh SET contoh='" + contoh + "', lagi='" + lagi + "' WHERE id=" + id + ""); statement.close(); } public static void main(String[] args) throws SQLException { Main main = new Main(); main.updateData(1, "Parah", "Nih"); main.updateData(2, "Koneksi", "Lemot"); } }jika dijalankan hasilnya seperti ini :
mysql> select * from contoh; +----+---------+-------+ | id | contoh | lagi | +----+---------+-------+ | 1 | Parah | Nih | | 2 | Koneksi | Lemot | +----+---------+-------+ 2 rows in set (0.00 sec)dibawah ini adalah contoh kode delete :
package echo.khannedy.belajarjdbc; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; public class Main { public void deleteData(Integer id) throws SQLException { Connection connection = ConnectionUtil.getConnection(); Statement statement = connection.createStatement(); statement.executeUpdate("DELETE FROM contoh WHERE id=" + id); statement.close(); } public static void main(String[] args) throws SQLException { Main main = new Main(); main.deleteData(1); } }jika kode diatas dijalankan, maka hasilnya seperti dibawah ini :
mysql> select * from contoh; +----+---------+-------+ | id | contoh | lagi | +----+---------+-------+ | 2 | Koneksi | Lemot | +----+---------+-------+ 1 row in set (0.00 sec)sekarang anda telah bisa melakukan proses INSERT UPDATE dan DELETE menggunakan Statement, namun sebenarnya ada yang menjadi masalah dengan Statement. masalahnya akan saya bahas pada bagian selanjutnya. untuk artikel kali ini, cukup sampai disini dulu 😀
awal dari pembelajaran java
http://learnjavaprogram.blogspot.com/
terima kasih
Info menarik buat tambah2 ilmu, salam kenal..
thanks ya mas artikelnya…
seep mantap surantap,,,
matur nuwun infonya bro..
matur nuwun sing akeh…
mas eco bikin lanjutan nya jdbc part 4 dong…. implementasi jdbc ke GUI / swing…
ide yang bagus 😀
ya, setuju
Waaaaah…boleh ikutan belajar yaaaaaaa….
Ping balik: Belajar Java Database Connectivity « BERBAGI ILMU
mass tutorial tentang database oracle dengan java!! 😀
saya tunggu,,