Coretanku

Tempatku Berbagi…

DML (Data Manipulation Language) dengan Java

assalamu’alaikum..

ok,,ok,, setelah lama tidak update blog karena kesibukan-kesibukan duniawi,, maka kali ini ane mau share ni gimana caranya melakukan operasi yang namanya DML (Data Manipulation Language) kaya insert, update, select, dll. Okok,, berhubung kemaren udah ane posting gimana caranya buat koneksinya, jadi kali ini ane kaga ngejelasin cara koneksinya melainkan cara untuk melakukan operasi-operasi tersebut.

Langsung aja ni ya,, yang pertama dilakukan adalah membuat databasenya terlebih dahulu, disini ane kaga menggunakan database yang kompleks tapi cuman sederhana banget, buat database mahasiswa, perintahnya kaya gini:

create database mahasiswa;

kemudian itu kan udah tercipta databasenya, lanjut buat tabelnya perintahnya:

create table data (id integer auto_increment primary key, nama varchar(50), npm varchar(12), jurusan varchar(30));

ok.. database udah kelar, jadi kaya gini struktur databasenya.

+---------+-------------+------+-----+---------+----------------+
| Field   | Type        | Null | Key | Default | Extra          |
+---------+-------------+------+-----+---------+----------------+
| id      | int(11)     | NO   | PRI | NULL    | auto_increment |
| nama    | varchar(50) | YES  |     | NULL    |                |
| npm     | varchar(12) | YES  |     | NULL    |                |
| jurusan | varchar(30) | YES  |     | NULL    |                |
+---------+-------------+------+-----+---------+----------------+

Database yang masig kosong

tahap pembuatan database udah kelar ni brarti, sekarang saatnya pindah ke Netbeans, langkah-langkahnya buat project terlebih dahulu, kemudian kalo udah tambahkan library myql JDBC Driver yang tinggal manggil dari Netbeansnya..

Lanjut…

setelah itu buat kelas baru untuk koneksinya.. kaya yg udah ane posting dulu itu..

Selanjutnya buat kelas satu lagi, kelas yang ini digunakan sebagai media untuk melakukan operasi-operasi DML itu.

Untuk melakukan operasi DML menggunakan Netbeans dapat menggunakan Statement ataupun PreparedStatement. Penggunaan dari kedua method itu juga hampir sama, cuman sedikit perbedaan saja. Pada tutorial yang ini ane menggunakan PreparedStatement..

Ok. lanjut….

kemudian setelah kelas itu terbuat masukkan method main kemudian buat sebuah variabel dengan tipe PreparedStatement dan diinisialisasi dengan null (kosong).

PreparedStatement statement = null;

kemudian buat blok try-catch-finally dengan exceptionnya SQLException seperti ini ni.

	try {

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if (statement != null) {
                try {

                } catch (SQLException e) {
                }
            }
        }

ok sedikit penjelasan per bloknya…

blok try: digunakan sebagai inisialisasi dan juga operasi-operasi DML.

blok catch: digunakan untuk menangkap exception jika terjadi error pada blok try.

blok finally: tetap dieksekusi walaupun ada error ataupun tidak blok ini akan tetap dieksekusi, jadi fungsi blok ini nantinya digunakan sebagai penutup statement.

lanjutt..

Di atas sudah ane sebutkan kalau blok try digunakan untuk melakukan operasi DML. Untuk melakukan operasi ini kita dapat langsung dari statement yang tadi udah dibuat, jadi seperti ini sintaknya.

	//proses insert
	statement = MysqlUtility.getConnection().prepareStatement(
                    "INSERT INTO data VALUES (null, 'Feriyadi Iskandar','09.11.3229','Teknik Informatika')"
                    );

udah seperti itu saja, tetapi walaupun sintak itu sudah benar dan bisa jalan tapi belum bisa melakukan operasi DML, kita perlu untuk menambahkan executeUpdate() jadi tambahkan sintak seperti ini dibawahnya.

	statement.executeUpdate();

nah dengan itu baru bisa jalan tuh proses DML-nya..

hasinya kaya’ gini ntar jika databasenya di browse pakai mysql query browser

ok..ok…

lanjut…

Untuk proses update, delete intinya sama cuman mengganti perintah SQL-nya.. seperti ini ni kalau yang update

	//proses update
        statement = MysqlUtility.getConnection().prepareStatement(
      		    "UPDATE data SET nama='Feri', npm='3229', jurusan='TI' where id=1"
	            );

ntar hasilnya seperti ini ni..

kalau yang delete, seperti ini ni..

	//proses delete
        statement = MysqlUtility.getConnection().prepareStatement(
                    "DELETE FROM data WHERE id=1"
                    );

ntar kalau ini dieksekusi maka isi databasenya akan hilang pada field id yang bernilai 1.

ok..ok…

lantas bagaimana dengan select???

untuk select agak berbeda, untuk menampilkan datanya kita membutuhkan method sekali lagi yaitu executeQuery() dan membutuhkan objek ResultSet yang digunakan untuk menampung data-datanya.. o iya dalam proses select ini kita tidak butuh method executeUpdate() jadi method ini dapat dinonaktifkan karena kalau menggunakan method ini maka program akan terjadi error.. kenapa error?? ya karena method update ini digunakan untuk melakukan update terhadap isi databasenya sedangkan di dalam proses select sendiri tidak akan mengupdate isinya tetapi hanya melihatnya.. (bisa dibayangkan ga’?.. kalau kaga’ cari sendiri lah tapi intinya kaya’ gitu.. 😀 )…

ok.. dari situ kemudian kita melakukan perulangan sebanyak record yang ada pada database, makanya dalam hal ini kita juga kudu tau dengan perulangan (bahasa kerennya looping :D). Nah di dalam perulangan inilah kita tuliskan apa yang ingin ditampilkan, jadi sintaknya kaya’ gini ni..

 	//proses select
        statement = MysqlUtility.getConnection().prepareStatement(
                    "SELECT * FROM data"
                    );

        ResultSet rs = statement.executeQuery(); // pembuatan resultsetnya

        System.out.println("INFORMASI MAHASISWA");
            while(rs.next()){	//ini ni yg namanya looping (bagi yg belum tau.)
                System.out.println("-------------------------------------");
                System.out.println("ID      : "+rs.getString("id")); 	// nah disini baru tampilkan datanya
                System.out.println("Nama    : "+rs.getString("nama"));
                System.out.println("NPM     : "+rs.getString("npm"));
                System.out.println("Jurusan : "+rs.getString("jurusan"));
                System.out.println("-------------------------------------");
        }

udah gitu aja jika dijalankan ntar hasilnya kaya’ gini ni di outputnya..

ok… udah kelar deh buatnya… o ya untuk sintak selengkapnya seperti di bawah ini ni.

MysqlUtility.java

/*
 *  Temen-temen dapat menggunakan, mengubah, memodifikasi file ini
 *  tapi mohon tuliskan referensinya dari file-file ini.
 *
 *  Build with:
 *  IDE    : Netbeans
 *  OS     : Ubuntu 10.04 Lucid Lynx
 *  Netbook: AXIOO Pico
 *
 *  Pheerry
 *  pherri.wordpress.com
 *
 */

package feri.iskandar.driver;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 *
 * @author pheerry
 */
public class MysqlUtility {

    private static Connection connection;

    public static Connection getConnection() throws SQLException {

        String url = "jdbc:mysql://localhost:3306/mahasiswa";
        String username ="root";
        String password = "";

        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        connection = DriverManager.getConnection(url, username, password);

        return connection;
    }

}

Main.java

/*
 *  Temen-temen dapat menggunakan, mengubah, memodifikasi file ini
 *  tapi mohon tuliskan referensinya dari file-file ini.
 *
 *  Build with:
 *  IDE    : Netbeans
 *  OS     : Ubuntu 10.04 Lucid Lynx
 *  Netbook: AXIOO Pico
 *
 *  Pheerry
 *  pherri.wordpress.com
 *
 */
package feri.iskandar;

import feri.iskandar.driver.MysqlUtility;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *
 * @author pheerry
 */
public class Main {

    public static void main(String[] args) {

        PreparedStatement statement = null;

        try {
            //proses insert
            statement = MysqlUtility.getConnection().prepareStatement(
                    "INSERT INTO data VALUES (null, 'Feriyadi Iskandar','09.11.3229','Teknik Informatika')"
                    );

             //proses update
//            statement = MysqlUtility.getConnection().prepareStatement(
//                    "UPDATE data SET nama='Feri', npm='3229', jurusan='TI' where id=1"
//                    );

//             //proses delete
//            statement = MysqlUtility.getConnection().prepareStatement(
//                    "DELETE FROM data WHERE id=1"
//                    );

//             //proses select
//            statement = MysqlUtility.getConnection().prepareStatement(
//                    "SELECT * FROM data"
//                    );
//
//            ResultSet rs = statement.executeQuery();
//
//            System.out.println("INFORMASI MAHASISWA");
//            while(rs.next()){
//                System.out.println("-------------------------------------");
//                System.out.println("ID      : "+rs.getString("id"));
//                System.out.println("Nama    : "+rs.getString("nama"));
//                System.out.println("NPM     : "+rs.getString("npm"));
//                System.out.println("Jurusan : "+rs.getString("jurusan"));
//                System.out.println("-------------------------------------");
//            }

            statement.executeUpdate();

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if (statement != null) {
                try {
                    statement.close();
                } catch (SQLException e) {
                }
            }
        }

    }
}

bagi yang mau download projectnya dapat didownload disini ni..

ok.. sekian aja ya.. semoga bermanfaat..

o ya.. ini program baru yang versi konsolenya (yang pake item-item cuman teks itu lho).. ntar tak buatin yang versi guinya deh.. lain waktu ya.. 😀 semoga tidak lupa..

ok dah.. dah capek mau mandi trus berangkat kuliah dulu.. wkwkwk

wassalamualaikum wr. wb

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: