Example to Connect Java Application With Mysql Database

Tutorial Java dan MySQL: Membuat Program CRUD

Program Java yang sering kita buat, biasanya akan menyimpan data dalam memori (RAM).

Setelah program ditutup, semuanya akan hilang. Karena sifatnya temporer.

Agar data yang diinputkan dapat disimpan secara 'permanen', kita membutuhkan database.

Ada banyak sekali pilihan database yang bisa digunakan, diantaranya: MySQL, SQLite, PostgreSQL, Ms. SQL Server, Oracle, MongoDB, dan sebagainya.

Pada kesempatan ini, kita akan belajar cara menghubungkan Java dengan MySQL dan membuat sebuah program CRUD sederhana berbasis teks.

Bagaimana Cara Menghubungkan Java dengan MySQL?

Kita membutuhkan JDBC (Java Data Base Connectivity) untuk menghubungkan Java dan MySQL.

JDBC bertugas menyediakan koneksi ke database, sehingga kita bisa mengakses dan mengelola datanya dari program Java.

Ada beberapa istilah yang harus dipahami dalam JDBC:

  • DriverManager: adalah sebuah class yang mengelola dirver;
  • Driver: adalah interface yang menangani komunikasi dengan database.
  • Connection: adalah interface yang menyediakan method untuk menghubungi database;
  • Statement: adalah inteface untuk mengeksekusi query;
  • ResultSet: adalah interface untuk menampung data hasil query.

Langkah-langkah menghubungkan Java dengan MySQL:

  1. Impor package java.sql.*;
  2. Daftarkan driver atau pilih driver yang akan digunakan;
  3. Buat Sebuah Koneksi;
  4. Exsekusi sebuah Query;
  5. Tutup koneksi dan selesai.

Untuk lebih jelasnya, mari kita coba saja dalam program.

Program Java dan MySQL

Silahkan buat proyek Java Application di Netbeans.

Membuat Proyek Java

Berikan nama: belajar-java-mysql.

Membuat Proyek Java

Sebelum mulai coding, siapkan dulu databasenya.

Silahkan buat database baru bernama perpustakaan.

Membuat database

Setelah itu buat tabel bernama buku.

Membuat tabel buku

Kode SQL-nya:

                          CREATE              TABLE              buku (      id_buku              INT              NOT              NULL              AUTO_INCREMENT ,      judul              VARCHAR(45)              NOT              NULL              ,      pengarang              VARCHAR(45)              NOT              NULL              ,              PRIMARY              KEY              (id_buku) );                      

Setelah itu coba isi dengan beberapa data.

                          INSERT              INTO              buku (judul, pengarang)              VALUES              ('Belajar Pemrograman Java dari Nol',              'Petani Kode'),      ('Pemrograman Java Menggunakan Linux',              'Petani Kode')                      

Selanjutnya kita akan mencoba menghubugkan program yang sudah kita buat dengan database ini.

Silahkan ikuti kode berikut:

                          package              belajar.java.mysql;              // import bumbu-bumbu yang diperlukan                                          import              java.sql.DriverManager;              import              java.sql.Connection;              import              java.sql.Statement;              import              java.sql.ResultSet;              // bisa juga diimpor sekaligus seperti ini:                            // import java.sql.*                                          public              class              BelajarJavaMysql              {              // Menyiapkan paramter JDBC untuk koneksi ke datbase                                          static              final              String JDBC_DRIVER              =              "com.mysql.jdbc.Driver"              ;              static              final              String DB_URL              =              "jdbc:mysql://localhost/perpustakaan"              ;              static              final              String USER              =              "root"              ;              static              final              String PASS              =              "kopi"              ;              // Menyiapkan objek yang diperlukan untuk mengelola database                                          static              Connection conn;              static              Statement stmt;              static              ResultSet rs;              public              static              void              main              (String[]              args)              {              // Melakukan koneksi ke database                                          // harus dibungkus dalam blok try/catch                                          try              {              // register driver yang akan dipakai                                          Class.              forName              (JDBC_DRIVER);              // buat koneksi ke database                                          conn              =              DriverManager.              getConnection              (DB_URL,              USER,              PASS);              // buat objek statement                                          stmt              =              conn.              createStatement              ();              // buat query ke database                                          String sql              =              "SELECT * FROM buku"              ;              // eksekusi query dan simpan hasilnya di obj ResultSet                                          rs              =              stmt.              executeQuery              (sql);              // tampilkan hasil query                                          while              (rs.              next              ()){              System.              out              .              println              (              "ID Buku: "              +              rs.              getInt              (              "id_buku"              ));              System.              out              .              println              (              "Judul: "              +              rs.              getString              (              "judul"              ));              System.              out              .              println              (              "Pengarang: "              +              rs.              getString              (              "pengarang"              ));              }              stmt.              close              ();              conn.              close              ();              }              catch              (Exception e)              {              e.              printStackTrace              ();              }              }              }                      

Setelah itu…

Programnya belum dapat dieksekusi, karena library MySQL JDBC Driver belum kita tambahkan ke dalam proyek.

Kalau kamu nekat mengeksekusi, maka akan mendapatkan error ClassNotFoundException: com.mysql.jdbc.Driver.

ClassNotFoundException: com.mysql.jdbc.Driver

Bagaimana cara menambahkannya?

Klik kanan pada Libraries , lalu pilih Add Library dan MySQL JDBC Driver:

Menambahkan Library di Proyek Java Netbeans

Setelah itu, baru bisa di-run atau dieksekusi.

Tekan Shift+F6 atau klik kanan–>Run File.

Menjalankan Program Java dan MySQL

Selamat 🎉

Kita telah berhasil menghubungkan program Java dengan database MySQL dan menampilkan datanya.

Tunggu dulu… Jelasin kodenya lebih detail om!

Baik, saya akan jelaskan.

Pertam dimulai dari mengimpor:

                          // import bumbu-bumbu yang diperlukan                                          import              java.sql.DriverManager;              import              java.sql.Connection;              import              java.sql.Statement;              import              java.sql.ResultSet;                      

Kode di atas maksudnya adalah mengimpor class dan interface yang kita butuhkan.

Bisa juga disingkat seperti ini:

Setelah kita mengimpor, selanjutnya kita siapkan dulu sebuah konstanta untuk parameter yang akan digunakan saat membuat koneksi ke database.

                          // Menyiapkan paramter JDBC untuk koneksi ke datbase                                          static              final              String JDBC_DRIVER              =              "com.mysql.jdbc.Driver"              ;              static              final              String DB_URL              =              "jdbc:mysql://localhost/perpustakaan"              ;              static              final              String USER              =              "root"              ;              static              final              String PASS              =              "kopi"              ;                      

DB_URL menyatakan URL server database dan database yang akan digunakan. Lalu USER untuk username databasenya dan PASS untuk password.

Di komputer saya, password MySQL-nya adalah kopi, hooo~ ketahuan deh 🐒.

Jika tidak pakai password, kosongkan saja nilai PASS.

                          static              final              String PASS              =              ""              ;                      

Sebelum mulai membuat koneksi ke server, kita harus tentukan dulu driver yang akan digunakan.

                          // register driver yang akan digunakan                            Class.              forName              (JDBC_DRIVER);                      

Dalam contoh tersebut, kita menggunakan driver "com.mysql.jdbc.Driver" untuk database MySQL.

Sedangkan untuk database yang lain, beda lagi drivernya.

  • MySQL

    Driver: com.mysql.jdbc.Driver,

    URL: jdbc:mysql://hostname/databaseName;

  • ORACLE

    Driver: oracle.jdbc.driver.OracleDriver,

    URL jdbc:oracle:thin:@hostname:portNumber:databaseName;

  • DB2

    Driver: COM.ibm.db2.jdbc.net.DB2Driver,

    URL: jdbc:db2:hostname:portNumber/databaseName

  • Sybase

    Driver: com.sybase.jdbc.SybDriver,

    URL: jdbc:sybase:Tds:hostname:portNumber/databaseName

Setelah memilih driver, selanjutnya kita lakukan koneksi ke database dengan parameter yang sudah dibuat.

                          // buat koneksi ke database                            conn              =              DriverManager.              getConnection              (DB_URL,              USER,              PASS);                      

Kalau koneksinya gagal, biasanya akan terjadi SQLException.

Selanjutnya kita membutuhkan objek Statement untuk mengeksekusi Query MySQL.

                          // buat objek statement                            stmt              =              conn.              createStatement              ();                      

Setelah itu, buat sebuah Query, eksekusi, dan hasilnya akan disimpan ke dalam objek rs (ResultSet).

                          // buat query ke database                            String sql              =              "SELECT * FROM buku"              ;              // eksekusi query dan simpan hasilnya di obj ResultSet                            rs              =              stmt.              executeQuery              (sql);                      

Method executeQuery() akan menghasilkan nilai kembalian berupa objek ResultSet. Method ini biasanya digunakan untuk mengambil data dari database.

Selain itu ada juga method untuk eksekusi query simpan, update, batch, dsb.

Tips: Tekan tobol Ctrl+Spasi saat menulis kode untuk melihatnya.

Method untuk eksekusi Query

Setelah mendapatkan data dari database MySQL, selanjutnya kita bisa tampilkan dengan perulangan.

                          // tampilkan hasil query                                          while              (rs.              next              ()){              System.              out              .              println              (              "ID Buku: "              +              rs.              getInt              (              "id_buku"              ));              System.              out              .              println              (              "Judul: "              +              rs.              getString              (              "judul"              ));              System.              out              .              println              (              "Pengarang: "              +              rs.              getString              (              "pengarang"              ));              }                      

Perulangan tersebut akan mengulang sebanyak isi tabelnya, atau dengan kata lain "Ulangi selama rs masih punya isi".

Cara mengambil nilai dari objek rs menggunakan method get* dengan parameter nama kolom di tabel database.

Contoh mau ambil id buku yang bertipe Integer:

                          int              idBuku              =              rs.              getInt              (              "id_buku"              );                      

Kalau mau ambil dengan tipe String bagaimana?

Ya tinggal diganti method-nya:

            String idBuku              =              rs.              getString              (              "id_buku"              );                      

Pastikan paramternya sama persis dengan nama kolom di database. Jika di database pakai huruf kapital, ya ikuti pakai huruf kapital.

Mengambil data dari ResultSet

Terakhir menutup Statement dan koneksi, biar aman 😄.

            stmt.              close              ();              conn.              close              ();                      

Gampang kan?

Selanjutnya kita akan membuat program yang lebih lengkap.

Membuat Program CRUD Java dan MySQL

Program CRUD adalah program yang mampu melakukan operasi Create, Read, Update, dan Delete.

Program dasar untuk memahami pemrograman database.

Silahkan buat Class baru di dalam proyek yang tadi dengan nama JavaCRUD.

Kita akan isi Class tersebut dengan fungsi-fungsi atau method untuk melakukan CRUD.

Mari kita mulai dari mengimpor bumbu-bumbu yang dibutuhkan:

                          import              java.io.BufferedReader;              import              java.io.InputStreamReader;              import              java.sql.DriverManager;              import              java.sql.Connection;              import              java.sql.Statement;              import              java.sql.ResultSet;                      

Class BuffereReader dan InputStreamReader kita butuhkan untuk mengambil input dari keyboard.

Seteleh itu, kita siapkan parameter, variabel, dan objek yang dibutuhkan.

                          static              final              String JDBC_DRIVER              =              "com.mysql.jdbc.Driver"              ;              static              final              String DB_URL              =              "jdbc:mysql://localhost/perpustakaan"              ;              static              final              String USER              =              "root"              ;              static              final              String PASS              =              "kopi"              ;              static              Connection conn;              static              Statement stmt;              static              ResultSet rs;              static              InputStreamReader inputStreamReader              =              new              InputStreamReader(System.              in              );              static              BufferedReader input              =              new              BufferedReader(inputStreamReader);                      

Selanjutnya membuat method main() yang merupakan entri point dari sebuah program.

Di dalam method ini kita akan melakukan perulangan selama terkoneksi dengan database dan perulangannya akan berhenti setelah user memilih menu keluar.

                          public              static              void              main              (String[]              args)              {              try              {              // register driver                                          Class.              forName              (JDBC_DRIVER);              conn              =              DriverManager.              getConnection              (DB_URL,              USER,              PASS);              stmt              =              conn.              createStatement              ();              while              (!conn.              isClosed              ())              {              showMenu();              }              stmt.              close              ();              conn.              close              ();              }              catch              (Exception e)              {              e.              printStackTrace              ();              }              }                      

Perhatikan, di sana ada pemanggilan fungsi atau method showMenu().

Berarti kita harus membuatnya:

                          static              void              showMenu              ()              {              System.              out              .              println              (              "\n========= MENU UTAMA ========="              );              System.              out              .              println              (              "1. Insert Data"              );              System.              out              .              println              (              "2. Show Data"              );              System.              out              .              println              (              "3. Edit Data"              );              System.              out              .              println              (              "4. Delete Data"              );              System.              out              .              println              (              "0. Keluar"              );              System.              out              .              println              (              ""              );              System.              out              .              print              (              "PILIHAN> "              );              try              {              int              pilihan              =              Integer.              parseInt              (input.              readLine              ());              switch              (pilihan)              {              case              0:              System.              exit              (0);              break              ;              case              1:              insertBuku();              break              ;              case              2:              showData();              break              ;              case              3:              updateBuku();              break              ;              case              4:              deleteBuku();              break              ;              default              :              System.              out              .              println              (              "Pilihan salah!"              );              }              }              catch              (Exception e)              {              e.              printStackTrace              ();              }              }                      

Di dalam method tersebut, kita menggunakan logika percabangan switch/case untuk pemilihan menu.

Perhatikan lagi, di sana ada pemanggilan method insertBuku(), showData(), updateBuku(), dan deleteBuku() di masing-masing pilihan menu.

Tugas kita selanjutnya adalah membuat keempat method tersebut.

Mari kita mulai dari method showData():

                          static              void              showData              ()              {              String sql              =              "SELECT * FROM buku"              ;              try              {              rs              =              stmt.              executeQuery              (sql);              System.              out              .              println              (              "+--------------------------------+"              );              System.              out              .              println              (              "|    DATA BUKU DI PERPUSTAKAAN   |"              );              System.              out              .              println              (              "+--------------------------------+"              );              while              (rs.              next              ())              {              int              idBuku              =              rs.              getInt              (              "id_buku"              );              String judul              =              rs.              getString              (              "judul"              );              String pengarang              =              rs.              getString              (              "pengarang"              );              System.              out              .              println              (String.              format              (              "%d. %s -- (%s)"              ,              idBuku,              judul,              pengarang));              }              }              catch              (Exception e)              {              e.              printStackTrace              ();              }              }                      

Method show data hanya berfungsi untuk menampilkan data hasil dari database.

Kita menggunakan fungsi String.format() untuk memudahkan penggabungan string. Kalau belum paham, silahkan baca meteri tentang mengambil input dan menampilkan output di Java.

Setelah itu, kita buat method insertBuku():

                          static              void              insertBuku              ()              {              try              {              // ambil input dari user                                          System.              out              .              print              (              "Judul: "              );              String judul              =              input.              readLine              ().              trim              ();              System.              out              .              print              (              "Pengarang: "              );              String pengarang              =              input.              readLine              ().              trim              ();              // query simpan                                          String sql              =              "INSERT INTO buku (judul, pengarang) VALUE('%s', '%s')"              ;              sql              =              String.              format              (sql,              judul,              pengarang);              // simpan buku                                          stmt.              execute              (sql);              }              catch              (Exception e)              {              e.              printStackTrace              ();              }              }                      

Untuk melakukan query simpan, kita menggunakan method execute().

Method ini akan mengembalikan nilai boolean: true bila query berhasil dan false bila gagal.

Selanjutnya membuat method updateBuku():

                          static              void              updateBuku              ()              {              try              {              // ambil input dari user                                          System.              out              .              print              (              "ID yang mau diedit: "              );              int              idBuku              =              Integer.              parseInt              (input.              readLine              ());              System.              out              .              print              (              "Judul: "              );              String judul              =              input.              readLine              ().              trim              ();              System.              out              .              print              (              "Pengarang: "              );              String pengarang              =              input.              readLine              ().              trim              ();              // query update                                          String sql              =              "UPDATE buku SET judul='%s', pengarang='%s' WHERE id_buku=%d"              ;              sql              =              String.              format              (sql,              judul,              pengarang,              idBuku);              // update data buku                                          stmt.              execute              (sql);              }              catch              (Exception e)              {              e.              printStackTrace              ();              }              }                      

Terakhir membuat method deleteBuku():

                          static              void              deleteBuku              ()              {              try              {              // ambil input dari user                                          System.              out              .              print              (              "ID yang mau dihapus: "              );              int              idBuku              =              Integer.              parseInt              (input.              readLine              ());              // buat query hapus                                          String sql              =              String.              format              (              "DELETE FROM buku WHERE id_buku=%d"              ,              idBuku);              // hapus data                                          stmt.              execute              (sql);              System.              out              .              println              (              "Data telah terhapus..."              );              }              catch              (Exception e)              {              e.              printStackTrace              ();              }              }                      

Kode lengkapnya akan menjadi seperti ini:

                          package              belajar.java.mysql;              import              java.io.BufferedReader;              import              java.io.InputStreamReader;              import              java.sql.DriverManager;              import              java.sql.Connection;              import              java.sql.Statement;              import              java.sql.ResultSet;              public              class              JavaCRUD              {              static              final              String JDBC_DRIVER              =              "com.mysql.jdbc.Driver"              ;              static              final              String DB_URL              =              "jdbc:mysql://localhost/perpustakaan"              ;              static              final              String USER              =              "root"              ;              static              final              String PASS              =              "kopi"              ;              static              Connection conn;              static              Statement stmt;              static              ResultSet rs;              static              InputStreamReader inputStreamReader              =              new              InputStreamReader(System.              in              );              static              BufferedReader input              =              new              BufferedReader(inputStreamReader);              /**                                            * @param args the command line arguments                                            */              public              static              void              main              (String[]              args)              {              try              {              // register driver                                          Class.              forName              (JDBC_DRIVER);              conn              =              DriverManager.              getConnection              (DB_URL,              USER,              PASS);              stmt              =              conn.              createStatement              ();              while              (!conn.              isClosed              ())              {              showMenu();              }              stmt.              close              ();              conn.              close              ();              }              catch              (Exception e)              {              e.              printStackTrace              ();              }              }              static              void              showMenu              ()              {              System.              out              .              println              (              "\n========= MENU UTAMA ========="              );              System.              out              .              println              (              "1. Insert Data"              );              System.              out              .              println              (              "2. Show Data"              );              System.              out              .              println              (              "3. Edit Data"              );              System.              out              .              println              (              "4. Delete Data"              );              System.              out              .              println              (              "0. Keluar"              );              System.              out              .              println              (              ""              );              System.              out              .              print              (              "PILIHAN> "              );              try              {              int              pilihan              =              Integer.              parseInt              (input.              readLine              ());              switch              (pilihan)              {              case              0:              System.              exit              (0);              break              ;              case              1:              insertBuku();              break              ;              case              2:              showData();              break              ;              case              3:              updateBuku();              break              ;              case              4:              deleteBuku();              break              ;              default              :              System.              out              .              println              (              "Pilihan salah!"              );              }              }              catch              (Exception e)              {              e.              printStackTrace              ();              }              }              static              void              showData              ()              {              String sql              =              "SELECT * FROM buku"              ;              try              {              rs              =              stmt.              executeQuery              (sql);              System.              out              .              println              (              "+--------------------------------+"              );              System.              out              .              println              (              "|    DATA BUKU DI PERPUSTAKAAN   |"              );              System.              out              .              println              (              "+--------------------------------+"              );              while              (rs.              next              ())              {              int              idBuku              =              rs.              getInt              (              "id_buku"              );              String judul              =              rs.              getString              (              "judul"              );              String pengarang              =              rs.              getString              (              "pengarang"              );              System.              out              .              println              (String.              format              (              "%d. %s -- (%s)"              ,              idBuku,              judul,              pengarang));              }              }              catch              (Exception e)              {              e.              printStackTrace              ();              }              }              static              void              insertBuku              ()              {              try              {              // ambil input dari user                                          System.              out              .              print              (              "Judul: "              );              String judul              =              input.              readLine              ().              trim              ();              System.              out              .              print              (              "Pengarang: "              );              String pengarang              =              input.              readLine              ().              trim              ();              // query simpan                                          String sql              =              "INSERT INTO buku (judul, pengarang) VALUE('%s', '%s')"              ;              sql              =              String.              format              (sql,              judul,              pengarang);              // simpan buku                                          stmt.              execute              (sql);              }              catch              (Exception e)              {              e.              printStackTrace              ();              }              }              static              void              updateBuku              ()              {              try              {              // ambil input dari user                                          System.              out              .              print              (              "ID yang mau diedit: "              );              int              idBuku              =              Integer.              parseInt              (input.              readLine              ());              System.              out              .              print              (              "Judul: "              );              String judul              =              input.              readLine              ().              trim              ();              System.              out              .              print              (              "Pengarang: "              );              String pengarang              =              input.              readLine              ().              trim              ();              // query update                                          String sql              =              "UPDATE buku SET judul='%s', pengarang='%s' WHERE id_buku=%d"              ;              sql              =              String.              format              (sql,              judul,              pengarang,              idBuku);              // update data buku                                          stmt.              execute              (sql);              }              catch              (Exception e)              {              e.              printStackTrace              ();              }              }              static              void              deleteBuku              ()              {              try              {              // ambil input dari user                                          System.              out              .              print              (              "ID yang mau dihapus: "              );              int              idBuku              =              Integer.              parseInt              (input.              readLine              ());              // buat query hapus                                          String sql              =              String.              format              (              "DELETE FROM buku WHERE id_buku=%d"              ,              idBuku);              // hapus data                                          stmt.              execute              (sql);              System.              out              .              println              (              "Data telah terhapus..."              );              }              catch              (Exception e)              {              e.              printStackTrace              ();              }              }              }                      

Cobalah untuk mengeksekusi dan analisis sendiri hasinya 😄…

Program CRUD Java dan MySQL

Akhir Kata…

Terima kasih sudah mengikuti tutorial ini sampai akhir. Bila ada yang belum jelas, bisa ditanyakan melalui komentar.

Selanjutnya mungkin kamu bisa mencoba:

  • Pemrograman GUI Java dengan Swing;
  • Tutorial Java dan MySQL: Membuat Aplikasi CRUD berbasis GUI;
  • Pemrograman Web dengan Java.

O ya, source code dari contoh program di atas bisa di-download di Github:

  • 🎁 github.com/petanikode/belajar-java-mysql

Example to Connect Java Application With Mysql Database

Source: https://www.petanikode.com/java-mysql/

0 Response to "Example to Connect Java Application With Mysql Database"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel