JavaでMySQLデータベースの構造情報を取得する方法
MySQLデータベースの構造情報を取得するには、DatabaseMetaDataクラスを使用します。この記事では、getMetaData()メソッドを活用して、Javaからデータベース「web」内のすべてのテーブル名を表示する方法を解説します。
DatabaseMetaDataクラスとは
DatabaseMetaDataは、JDBC(Java Database Connectivity)が提供するインターフェースの一つで、接続先データベースに関するメタ情報(テーブル一覧、カラム情報、インデックスなど)を取得するために使用されます。データベースの構造をプログラムから動的に把握したい場合に非常に便利なクラスです。
サンプルコード
以下は、JavaでMySQLデータベース内の全テーブル名を取得して表示するサンプルコードです。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import com.mysql.jdbc.DatabaseMetaData;
public class getDatabaseInformationDemo {
public static void main(String[] args) {
Connection con = null;
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/web?useSSL=false", "root", "123456");
DatabaseMetaData information = (DatabaseMetaData) con.getMetaData();
String allTableName[] = {
"TABLE"
};
ResultSet r = information.getTables(null, null, null, allTableName);
while (r.next()) {
System.out.println(r.getString(3));
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}実行結果
上記のコードを実行すると、データベース「web」に存在するテーブル名が以下のように出力されます。
demotable211 demotable212 demotable213 demotable214 demotable215 demotable216 name select
コードのポイント
- データベース接続: DriverManager.getConnection()メソッドで、JDBC URL・ユーザー名・パスワードを指定してMySQLに接続します。
- メタデータの取得: con.getMetaData()を呼び出すことで、DatabaseMetaDataオブジェクトを取得できます。
- テーブル一覧の取得: getTables()メソッドの第4引数にテーブルタイプとして「TABLE」を渡すことで、テーブルのみを対象に検索できます。
- テーブル名の表示: ResultSetのgetString(3)で3番目のカラム(テーブル名)を取り出し、whileループで順に出力します。
この手法を応用すれば、テーブル名だけでなく、カラム情報やインデックスなど、データベースの詳細な構造情報もJavaプログラムから柔軟に取得することが可能です。
-
JavaでMySQLデータベースに接続する方法|JDBC接続の基本を解説
MySQLデータベースへの接続URLJavaからMySQLデータベースに接続するには、JDBC(Java Database Connectivity)ドライバを使用します。まず、接続に必要な情報として、以下のようなURL・ユーザー名・パスワードを用意します。String MySQLURL = jdbc:mysql://localhost:3306/yourDatabaseName?useSSL=false; String databseUserName = yourUserName; String databasePassword = yourPassword;接続URLを構成する各要素の意味
-
JavaでMySQLデータベースにNULL値を挿入する方法
JavaからデータベースにNULL値を挿入したいケースはよくあります。その場合、PreparedStatementのsetNull()メソッドを使用します。基本的な構文は以下の通りです。ps.setNull(インデックス番号, Types.NULL);この記事では、実際にサンプルを通してNULL値の挿入手順を解説します。1. テーブルの作成まず、MySQLでテスト用のテーブルを作成します。mysql> create table DemoTable1893 ( FirstName varchar(20) ); Query OK, 0 rows affected (0