Menampilkan metadata database MySQL melalui JDBC di program Java
Menampilkan Metadata Database MySQL Di Program Java
Pin It
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 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.

Baca artikel:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
// 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 dengan 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. Berikut ini adalah tabel beberapa metoda MetadataBasisData yang dapat memberikan informasi terkait basis data:

Metoda Interface MetadataBasisData

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.

Produk Toko Gerzal

Edifier R1700BT Active 2.0 Bluetooth Bookshelf Speaker Set

Edifier R1700BT Active 2.0 Bluetooth Bookshelf Speaker Set

Beli di Shopee
Sunbuck AV-555BT Audio Amplifier Bluetooth 5.0 Microphone HiFi

Sunbuck AV-555BT Audio Amplifier Bluetooth 5.0 Microphone HiFi

Beli di Shopee
QUEED Power Supply Station Generator 220V 69800mAh

QUEED Power Supply Station Generator 220V 69800mAh

Beli di Shopee
Fosi Audio V3 Power Amplifier 2 Channel Audio Stereo Hi-Fi TI TPA3255

Fosi Audio V3 Power Amplifier 2 Channel Audio Stereo Hi-Fi

Beli di Shopee
Fosi Audio MC101 Mini Bluetooth Stereo Amplifier With VU Meter

Fosi Audio MC101 Mini Bluetooth Stereo Amplifier With VU Meter

Beli di Shopee