JDBC dan MySQL dengan NetBeans part 1


dengan membaca tutorial ini berarti anda telah membaca tutorial MySQL dan NetBeans bagian 1 dan 2…

hmmmmmm…..

lagi iseng nich jam 4 bagi. sebelum subuh bikin tutorial dulu tentang JDBC (Java Database Connectivity) dan MySQL and tetep pake Netbeans 🙂

pada tutorial ini kita baca tentang cara membuat Connection, trus cara bikin Statement, and cara bikin ResultSet. bingung? ah gak perlu kawatir, dulu juga saya bingung. tapi setelah baca tutorial ini, pasti gak kan ada kata bingung… let’s GO!!!!!!!

java.sql.Connection

sebelum kita mengelola database pada MySQL kita perlu membuat terlebih dahulu sebuah koneksi yang dalam java dekenal dengan java.sql.Connection.  tapi sebelumnya kita harus menentukan sebuah driver setiap DBMS yang akan kita gunakan. karena kita menggunakan DBMS MySQL, maka kita harus membuat instansiasi dari Driver milik MySQL. dan masalahnya, java tidak menyediakan driver untuk MySQL, sehingga kita harus mendownload driver MySQL dari situs resmi MySQL. tapi tenang saja, karena kita pake Netbeans, semuanya telah tersedia, hahahaha….

untuk memasukkan sebuah library untuk drriver MySQL pada netbeans gampang saj. caranya klik kanan pada library milik project yang akan kita gunakan lalu pilih add library :

image

setelah itu cari library MySQL JDBC Driver lalu klik tombol add library :

image

sekarang bisa dilihat kalo MySQL JDBC Driver telah ada di library project yang akan kita buat :

image

setelah itu buat sebuah class untuk koneksi (jika anda belum tahu cara membuat koneksi, silahkan lihat kembali tutorial MySQL dan Netbeans bagian 1) :

import com.mysql.jdbc.Driver;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Koneksi {

    private static Connection koneksi;

    public static Connection getConnection() throws SQLException {
        if (koneksi == null) {
            // panggil Driver MySQL
            new Driver();
            // buat koneksi
            koneksi = DriverManager.getConnection("jdbc:mysql://localhost:3306/netbeans", "username", "password");
        }
        return koneksi;
    }

    public static void main(String args[]) {
        try {
            getConnection();
            System.out.println("Koneksi Berhasil");
        } catch (SQLException ex) {
            System.err.println("Koneksi Gagal");
        }
    }
}

setelah itu coba running, jika berhasil maka akan mengeluarkan tulisan “Koneksi Berhasil”, jika gagal, maka akan keluar tulisan “Koneksi Gagal”. nach sekarang saya akan anggap koneksi berhasil. kalo gagal, pasti ada yang salah dengan yang anda ketikkan, ulangi lagi sampai berhasil….

java.sql.Statement

nah sekarang kita akan masuk ke proses INSERT, UPDATE, DELETE pada database. caranya kita harus membuat sebuah Statement, lalu dengan statement tersebut kita bisa membuat proses eksekusi INSERT, UPDATE, dan DELETE. namun tak bisa mengeksekusi proses SELECT karena proses tersebut mengembalikan nilai, makanya nanti kita akan bahas prose SELECT di subbab selanjutnya.

untuk membuat Statement, kita cukup memanggil metode createStatement() milik Connection. ini contohnya :

Connection koneksi = ....
Statement statement = koneksi.createStatement();</code>

sedangkan untuk melakukan proses eksekusi instruksi SQL, kita gunakan metode executeUpdate(“PERINTAH SQL”) milik Statement, contohnya kita akan mencoba membuat Statement untuk eksekusi perintah INSERT :


import java.sql.SQLException;
import java.sql.Statement;

public class InsertRecord {

    public static void main(String args[]) throws SQLException {
        Statement statement = Koneksi.getConnection().createStatement();
        statement.executeUpdate("INSERT INTO MAHASISWA " +
                "VALUES (" +
                "'10106031','Eko Kurnaiwan Khannedy','1988-12-29'" +
                ");");

        statement.close();
    }
}

setelah di eksekusi, maka ini hasilnya :

image

sekarang kita coba melakukan proses UPDATE :


import java.sql.SQLException;
import java.sql.Statement;

public class UpdateRecord {

    public static void main(String args[]) throws SQLException {
        Statement statement = Koneksi.getConnection().createStatement();
        statement.executeUpdate("UPDATE MAHASISWA " +
                "SET " +
                "NAMA = 'Nesia Oktiana' ," +
                "TANGGAL_LAHIR = '1988-10-04' " +
                "WHERE " +
                "NIM = '10106031';");
        statement.close();
    }
}

setelah dieksekusi maka ini hasilnya :

image

sekarang kita coba proses DELETE :


import java.sql.SQLException;
import java.sql.Statement;

public class DeleteRecord {

    public static void main(String args[]) throws SQLException {
        Statement statment = Koneksi.getConnection().createStatement();
        statment.executeUpdate("DELETE FROM MAHASISWA " +
                "WHERE NIM = '10106031';");
        statment.close();
    }
}

setelah dieksekusi maka ini hasilnya :

image

ternyata gampangkan membuat koneksi dan melakukan proses INSERT UPDATE dana DELETE di Java. 😉

java.sql.ResultSet

seperti janji saya, sekarang kita akan belajar bagaimana melakukan proses SELECT di Java. hmmmm gampang aja, pertama buat Connection, llau buat Statement lalu buat ResultSet, caranya seperti ini :

Connection koneksi = ...
Statement statement = koneksi.createStatement();
ResultSet result = statement.executeQuery("SELECT ...");

setelah itu untuk mendapatkan datanya gunakan metode get[TipeData](“NAMA_KOLOM”) milik ResultSet. untuk lebih jelasnya sekarang kita akan mencoba menampilkan seluruh data pada tabel Mahiswa yang ada pada database NETBEANS:


import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class SelectRecord {

    public static void main(String args[]) throws SQLException {
        Statement statement = Koneksi.getConnection().createStatement();

        statement.executeUpdate("INSERT INTO MAHASISWA VALUES ('1','A','1988-12-29')");
        statement.executeUpdate("INSERT INTO MAHASISWA VALUES ('2','B','1988-12-29')");
        statement.executeUpdate("INSERT INTO MAHASISWA VALUES ('3','C','1988-12-29')");
        statement.executeUpdate("INSERT INTO MAHASISWA VALUES ('4','D','1988-12-29')");
        statement.executeUpdate("INSERT INTO MAHASISWA VALUES ('5','E','1988-12-29')");

        ResultSet result = statement.executeQuery("SELECT * FROM MAHASISWA");

        String nim;
        String nama;
        Date tanggalLahir;
        int index = 1;

        while (result.next()) {
            nim = result.getString("NIM");
            nama = result.getString("NAMA");
            tanggalLahir = result.getDate("TANGGAL_LAHIR");

            System.out.println("Mahasiswa Ke-" + index);
            System.out.println("Nim : " + nim);
            System.out.println("Nama : " + nama);
            System.out.println("Tanggal Lahir : " + tanggalLahir);
            System.out.println();
            index++;
        }
        result.close();
        statement.close();
    }
}

setelah dieksekusi, maka akan menghasilkan output seperti ini :

Mahasiswa Ke-1
Nim : 1
Nama : A
Tanggal Lahir : 1988-12-29

Mahasiswa Ke-2
Nim : 2
Nama : B
Tanggal Lahir : 1988-12-29

Mahasiswa Ke-3
Nim : 3
Nama : C
Tanggal Lahir : 1988-12-29

Mahasiswa Ke-4
Nim : 4
Nama : D
Tanggal Lahir : 1988-12-29

Mahasiswa Ke-5
Nim : 5
Nama : E
Tanggal Lahir : 1988-12-29

sekarang akan saya beritahu apa itu metode next() milik ResultSet. metode next() merupakan metode yang digunakan untuk mengecek apakah ada record lagi selain pada posisi index yang saat ini (pada awalnya posisi index ResultSet adalah 0 (nol)) jika ada maka index akan loncat kedepan misal dari 0 menjadi 1 dan akan mengembalikan nilai true, tetapi jika tak ada maka index tetap disitu dan akan mengembalikan nilai false;

selain itu perlu diketahui, bahwa class Statement dan ResultSet serta Connection memiliki metode yang bernama metode close(). metode ini merupakan metode yang digunakan untuk menutup. misal ketika Satement kita panggil metode close() nya maka Statement tersebut akan ditutup, sehingga koneksi ke MySQL akan terputus dan dari memori akan dibapus. jadi metode close() harus selalu dipanggil jika proses telah selesai, karena jika tidak maka akan terjadi penumpukan memori…..

tutorial berikutnya kita akan bahas tentang PrepareStatement

see you at next tutorial

Rock with Java!!!!!

😉

Iklan

81 pemikiran pada “JDBC dan MySQL dengan NetBeans part 1

  1. mas , saya membuat tugas besar java, aplikasi peminjaman buku menggunakan netbeans,ketika mau melakukan koneksi ke mysql seperti petunjuk diatas, terdapat run program
    run:
    Koneksi Gagal
    BUILD SUCCESSFUL (total time: 2 seconds)
    saya sudah ngecek kata-demi kata program dan masih sesuai dengan petunjuk, apa yang salah yah mas???? neh programnya :
    package tamanbacaan;
    import com.mysql.jdbc.Driver;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    /**
    *
    * @author PUTRA
    */
    public class Koneksi {

    private static Connection koneksi;

    public static Connection getConnection() throws SQLException {
    if (koneksi == null) {
    // panggil Driver MySQL
    new Driver();
    // buat koneksi
    koneksi = DriverManager.getConnection(“jdbc:mysql://localhost:3306/netbeans”, “username”, “password”);
    }
    return koneksi;
    }

    public static void main(String args[]) {
    try {
    getConnection();
    System.out.println(“Koneksi Berhasil”);
    } catch (SQLException ex) {
    System.err.println(“Koneksi Gagal”);
    }
    }
    }
    mohon bantuannya mas, makasih!!

    • maap mau nyoba jawab ni
      coba untuk connectionnya sudah terhubung belum,my sqlnya sudah hidup kah?
      kalo sudah coba di cek,apa mysql anda pakai pass sama usernme ga? kalau misal tidak untuk koneksi di program java,usernme dan pssnya di hapus aja jadi local host

  2. mas perintah insert pas di jalanin error ya,,

    ini hasilnya:

    run:
    Exception in thread “main” com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table ‘siswa.siswa’ doesn’t exist
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.Util.getInstance(Util.java:381)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1564)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1485)
    at samplemysql.InsertRecord.main(InsertRecord.java:18)
    Java Result: 1
    BUILD SUCCESSFUL (total time: 2 seconds)

  3. salam kenal,

    pada saat insert ada error pas di run,, padahal aku udah ngikutin PL/SQL yg akang buat..
    ini baris perintah SQL nya :

    statement.executeUpdate(“insert into mahasiswa”+”values(“+”‘30208143′,’yulian farlianda saputra’,’1990-03-21′”+”);”);

    run-single:
    Exception in thread “main” com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ”30208143′,’yulian farlianda saputra’,’1990-03-21′)’ at line 1
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3250)
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1355)
    at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1270)
    at netbeans.InsertRecord.main(InsertRecord.java:22)
    Java Result: 1
    BUILD SUCCESSFUL (total time: 0 seconds)

  4. bang ini saya sedang belajar java netbeans 6.9
    saya menggunakan database sqlserver 2000 untuk koneksinya gimana bang dan ini kan saya mencoba untuk koneksi client-server untuk komputer client yang dikonfigurasi kira2 apa aja bang mohon petunjuknya

    ditunggu balasannya bang kirim ke e-mail saya aja terima kasih sebelumnya

  5. Alhamdulillah saya dapat ilmu untuk koneksi ke internet tadinya saya pernah belajar tapi lupa sekarang ketemu lagi materinya saya coba insya Allah

  6. maaf mas…
    klo koneksi ke my sql di komputer lain gimna ya caranya…
    syntaxnya sama atau g…
    tolong dong kasih gambaran…
    sebelumnya terima kasih…

  7. hii,
    saya pakai netbeans 5.5 tapi kok tidak ada library JDBC
    kalau memang tdk ada, add library manual gmn ??

    trims banyak.

  8. gan bantuin dong, aku dah buat tu program, tapi nsaat di run, eh ada error gini gan,
    “com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied”
    mohon bantuannya gan…
    thx

  9. Mo tanya ni mas, saya mau mengkoneksikan program akademik yg saya bwt dr netbeans, yg saya tanyakan bagai mana cara koneksinya apabila komputer 1 ada program akademiknya dan mau di koneksikan pada komputer 2 yang ada database mysqlnya. Istilahnya muliti user.
    Mohon bantuanya. Send email saya ya mas. Makasih

  10. Makasi banyak mas tutorial_a sangat membantu.
    Boleh nanyak gak mas, saya kurang mengerti tentang penggunaan private static dan public static, saya masih belum paham tentang penggunaan_a mas, kira2 ada gak tutorial yang bisa saya baca agar mengarah ke sana?

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