Banner Java

Menampilkan Metadata Basis Data MySQL Menggunakan JDBC

Metadata dapat diartikan sebagai informasi data yang menjelaskan tentang sesuatu. Metadata basis data adalah informasi data yang menjelaskan tentang basis data. Ketika koneksi ke sebuah basis data berlangsung, Anda dapat memperoleh metadata basis data. Koneksi ke basis data menyediakan akses ke informasi basis data seperti URL, pengguna, nama produk, nama driver JDBC, versi driver JDBC, versi mayor, versi minor dan sebagainya.

JDBC menyediakan interface DatabaseMetaData yang berisi informasi lengkap berkaitan dengan basis data. Untuk bisa mendapatkan metadata basis data MySQL, Anda terlebih dahulu harus memuat driver dan membuat koneksi ke basis data MySQL. Obyek (instance) dari DatabaseMetaData yang berisi informasi terkait basis data MySQL dapat diperoleh dengan menggunakan metode getMetaData dari obyek koneksi. Program di bawah ini menampilkan beberapa informasi berkaitan dengan basis data MySQL yang terkoneksi.

// Nama file : MetadataMysql.java
// Menampilkan informasi tentang basis data MySQL

import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MetadataMysql extends JFrame {

   private JTextField txtURL, txtUser, txtProductName, txtProductVersion, 
   txtDriverName, txtDriverVersion, txtVersionMayor, txtVersionMinor;
   private JPanel panel1, panel2;
   private Connection conn;
   private DatabaseMetaData dbmd;

   public MetadataMysql() {

      // Membuat obyek panel dan label
      panel1 = new JPanel();
      panel1.setLayout(new GridLayout(8, 1));
      panel1.add(new JLabel("URL basis data"));
      panel1.add(new JLabel("Pengguna basis data"));
      panel1.add(new JLabel("Nama produk basis data"));
      panel1.add(new JLabel("Versi produk basis data"));
      panel1.add(new JLabel("Nama driver JDBC"));
      panel1.add(new JLabel("Versi driver JDBC"));
      panel1.add(new JLabel("Versi mayor driver"));
      panel1.add(new JLabel("Versi minor driver"));

      // Membuat obyek text field
      txtURL = new JTextField();
      txtUser = new JTextField();
      txtProductName = new JTextField();
      txtProductVersion = new JTextField();
      txtDriverName = new JTextField();
      txtDriverVersion = new JTextField();
      txtVersionMayor = new JTextField();
      txtVersionMinor = new JTextField();

      // Membuat obyek panel dan menempatkan text field
      panel2 = new JPanel();
      panel2.setLayout(new GridLayout(8, 1));
      panel2.add(txtURL);
      panel2.add(txtUser);
      panel2.add(txtProductName);
      panel2.add(txtProductVersion);
      panel2.add(txtDriverName);
      panel2.add(txtDriverVersion);
      panel2.add(txtVersionMayor);
      panel2.add(txtVersionMinor);

      // Memanggil metoda aksesKeDB
      aksesKeDB();

      getContentPane().setLayout(new BorderLayout(4, 0));
      getContentPane().add(panel1, BorderLayout.LINE_START);
      getContentPane().add(panel2, BorderLayout.CENTER);

      addWindowListener(new WindowAdapter() {
         public void windowClosed(WindowEvent we) {
            Try {
               conn.close();
            }
            catch (SQLException sqlEx) {
               sqlEx.printStackTrace();
            }
         }
      });   
   }   

   private void aksesKeDB() {
      // memuat driver, membuat koneksi dan obyek metadata
      conn = null;
         try {
            Class.forName("com.mysql.jdbc.Driver");   
            conn = DriverManager.getConnection
               ("jdbc:mysql://localhost:3306/buku", "root", "bendol");
            dbmd = conn.getMetaData();

            // Menampilkan hasil di text field
            txtURL.setText("" + dbmd.getURL());
            txtUser.setText("" + dbmd.getUserName());
            txtProductName.setText("" + dbmd.getDatabaseProductName());
            txtProductVersion.setText("" + dbmd.getDatabaseProductVersion());
            txtDriverName.setText("" + dbmd.getDriverName());
            txtDriverVersion.setText("" + dbmd.getDriverVersion());
            txtVersionMayor.setText("" + dbmd.getDriverMajorVersion());
            txtVersionMinor.setText("" + dbmd.getDriverMinorVersion());
         } 
         // Memuat driver dapat memicu eksepsi ClassNotFoundException
         catch (ClassNotFoundException anf) {
            JOptionPane.showMessageDialog(null, "Kelas tidak ditemukan");
         }
         // Koneksi ke basis data dapat memicu eksepsi SQLException
         catch (SQLException sqlEx) {
            sqlEx.printStackTrace();
         }
      }

      // Metoda main
      public static void main(String[] args) {
      MetadataMysql frame = new MetadataMysql();
      frame.setTitle("Metadata MySQL");
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(750, 230);
      frame.setVisible(true);
   }
}

Menampilkan metadata basis data MySQL menggunakan JDBC

Metoda aksesKeDB (baris nomor 73 – 100) merupakan blok pernyataan yang melakukan tugas memuat driver dan melakukan koneksi ke basis data MySQL, mengkonstruksi obyek metadata basis data serta menampilkan beberapa informasi data terkait dengan basis data MySQL yang terkoneksi. Berikut ini adalah tabel beberapa metoda dari MetadataBasisData yang dapat memberikan informasi terkait basis data:

Metoda Keterangan
getURL() Mendapatkan URL untuk Database Management System (DBMS).
getTables(String catalog, String schemaPattern, String tableNamaPattern, String[] types) Memperoleh deskripsi tabel yang tersedia di katalok.
getUserName() Mendapatkan nama pengguna dari basis data.
getDatabaseProductName() Mendapatkan nama produk basis data.
getDatabaseProductVersion() Mendapatkan nomor versi produk basis data.
getDatabaseMajorVersion() Mendapatkan nomor versi mayor dari basis data.
getDatabaseMinorVersion() Mendapatkan nomor versi minor dari basis data.
getDriverName() Mendapatkan nama driver JDBC.
getDriverVersion() Mendapatkan nomor versi driver JDBC.
getDriverMajorVersion() Mendapatkan nomor versi mayor driver JDBC.
getDriverMinorVersion() Mendapatkan nomor versi minor driver JDBC.

Baca artikel terkait lainnya:

Untuk memperbaiki mutu konten, Anda dapat berpartisipasi dengan cara melaporkan apabila menemukan kesalahan ketik, kata-kata rangkap, redaksi kurang pas (jelas), gambar pendukung tidak ada dan sebagainya melalui form Kontak Kami untuk mendapatkan perbaikan. Terima kasih atas kerjasamanya.

Hindro HindriantoHindro adalah pendiri sekaligus admin termasmedia.com dan topikit.com, blog online yang mengulas teknologi informasi. Dunia web mulai ditekuni tahun 2012 dengan mempelajari CMS Joomla dan Wordpress. Beberapa buku yang sekarang dipelajari antara lain PHP, HTML5, ASP.NET 4.5, JavaScript, CSS3, MySQL, Adobe Dreamweaver, Adobe Photoshop dan Adobe Flash.