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); } } |
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. |