MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

JavaでMySQLテーブルのカラム数を取得・カウントする方法

MySQLテーブルのカラム(列)数をJavaで取得するには、ResultSetMetaDataインターフェースを使用します。ResultSetMetaDataを活用すれば、カラムの総数だけでなく、各カラムの名前やデータ型といった詳細情報も簡単に取得できます。

前提:サンプルテーブルの作成

まずは動作確認用のテーブルを作成しましょう。以下のSQLでは、3つのカラムを持つ「DemoTable」を作成しています。

mysql> create table DemoTable
    -> (
    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentFirstName varchar(20),
    -> StudentLastName varchar(20)
    -> );
Query OK, 0 rows affected (0.58 sec)

ここで、StudentIdは自動採番(AUTO_INCREMENT)される主キー、StudentFirstNameStudentLastNameはそれぞれ20文字まで格納できるVARCHAR型のカラムです。

Javaコードの例

次に、ResultSetMetaDataを使ってカラム数とカラム情報を取得するJavaコードを見てみましょう。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import com.mysql.jdbc.ResultSetMetaData;
public class ResultSetDemo {
    public static void main(String[] args) {
        Connection con = null;
        PreparedStatement ps = null;
        Statement st = null;
        ResultSet rs = null;
        try {
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/web?useSSL=false", "root", "123456");
            String query = "select StudentId,StudentFirstName,StudentLastName from DemoTable";
            st = con.createStatement();
            rs = st.executeQuery(query);
            ResultSetMetaData rsmd = (ResultSetMetaData) rs.getMetaData();
            int numberOfColumn = rsmd.getColumnCount();
            System.out.println(" Number Of Columns: " + numberOfColumn);
            System.out.println("All Details Of Columns:");
            for (int i = 1; i <= numberOfColumn; i++) {
                String columnName = rsmd.getColumnName(i);
                String dataTypeOfColumn = rsmd.getColumnTypeName(i);
                System.out.println(columnName + " has data type " + dataTypeOfColumn);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

コードのポイント

  • rs.getMetaData():実行したSELECT文の結果セットからメタデータを取得します。
  • getColumnCount():結果セットに含まれるカラムの総数を返します。
  • getColumnName(i):i番目のカラム名を取得します(インデックスは1から始まる点に注意)。
  • getColumnTypeName(i):i番目のカラムのデータ型名(INTやVARCHARなど)を取得します。

実行結果

プログラムを実行すると、コンソールに以下のように出力されます。

Number Of Columns: 3
All Details Of Columns:
StudentId has data type INT
StudentFirstName has data type VARCHAR
StudentLastName has data type VARCHAR

このように、カラム数として「3」が正しく取得でき、さらに各カラムの名前とデータ型の一覧も同時に確認できます。出力のスクリーンショットは以下の通りです。

JavaでMySQLテーブルのカラム数を取得・カウントする方法

なお、新しいバージョンのJDBCドライバを使用する場合は、非推奨となっている com.mysql.jdbc.ResultSetMetaData の代わりに、標準の java.sql.ResultSetMetaData をインポートすることをおすすめします。これにより、コードの互換性と保守性が向上します。

  1. JavaのPreparedStatementを使ってMySQLテーブルを更新する方法

    JavaからMySQLのテーブルを更新するには、PreparedStatementを使用するのが一般的で安全な方法です。PreparedStatementを使うことで、SQLインジェクションを防ぎつつ、パラメータを動的に設定できます。この記事では、実際にテーブルを作成し、Javaプログラムからレコードを更新するまでの一連の手順を解説します。1. テーブルの作成まず、MySQLで更新用のテーブルを作成しましょう。mysql> create table DemoTable( Id int, FirstName varchar(40) ); Query OK, 0 rows a

  2. Javaを使ってMySQLテーブルにレコードを挿入する方法

    はじめに本記事では、JavaのJDBC(Java Database Connectivity)を使用して、MySQLデータベースのテーブルにレコードを挿入する手順を解説します。まずテーブルを作成し、その後Javaプログラムからデータを登録するまでの一連の流れを見ていきましょう。1. MySQLでテーブルを作成するまず、データを挿入するためのテーブルを作成します。以下はMySQLでテーブルを作成するクエリです。mysql> create table DemoTable(   Id int,   Name varchar(30),&