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

Java JDBCでMySQLのCOUNTクエリを実行したときの戻り値の型は何?取得方法を解説

COUNT関数の戻り値の型は「long」

MySQLのCOUNT()関数をJava JDBCから実行した場合、戻り値の型はlong型になります。結果を取得するには、ResultSetgetLong()メソッドを使用します。

rs.next();
long result = rs.getLong("anyAliasName");

以下では、サンプルデータベース「test3」を使って、実際にテーブルを作成し、COUNTクエリの結果をJavaで取得する手順を順番に解説します。

1. サンプルテーブルの作成

まず、テスト用のテーブルを作成します。テーブル作成用のSQLは次のとおりです。

mysql> create table CountDemo
    -> (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> Name varchar(20)
    -> );
Query OK, 0 rows affected (0.60 sec)

2. レコードの挿入

INSERT文を使って、テーブルにいくつかのレコードを挿入します。

mysql> insert into CountDemo(Name) values('John');
Query OK, 1 row affected (0.21 sec)
mysql> insert into CountDemo(Name) values('Carol');
Query OK, 1 row affected (0.16 sec)
mysql> insert into CountDemo(Name) values('Bob');
Query OK, 1 row affected (0.19 sec)
mysql> insert into CountDemo(Name) values('David');
Query OK, 1 row affected (0.16 sec)

3. テーブルの内容を確認

SELECT文ですべてのレコードを表示して確認しましょう。

mysql> select *from CountDemo;

実行結果は以下のとおりです。

+----+-------+
| Id | Name  |
+----+-------+
| 1 | John   |
| 2 | Carol  |
| 3 | Bob    |
| 4 | David  |
+----+-------+
4 rows in set (0.00 sec)

4. Java JDBCでCOUNTクエリを実行するコード例

ここでは、JDBCを使ってMySQLに対してCOUNT(*)クエリを実行し、その結果(レコード数)をlong型として取得するJavaコードを紹介します。ポイントは、SQL側でAS totalCountのようにエイリアスを付けておき、getLong("totalCount")でその値を取り出すことです。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ReturnTypeOfCount {
    public static void main(String[] args) {
        Connection con=null;
        Statement st=null;
        ResultSet rs=null;
        try {
            con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test3?useSSL=false",
            "root","123456");
            String yourQuery = "SELECT COUNT(*) AS totalCount FROM CountDemo";
            st = con.createStatement();
            rs = st.executeQuery(yourQuery);
            rs.next();
            long result= rs.getLong("totalCount");
            System.out.println("Total Count="+result);
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}

実行結果

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

Total Count=4

このように、JDBC経由でCOUNTクエリの結果を受け取る場合は、getLong()メソッドを使ってlong型として取得するのが基本です。getInt()でも動作しますが、大きなテーブルでも安全に扱えるため、long型での取得が推奨されます。

  1. MySQL JDBCドライバーの接続文字列とは?書き方と使い方を解説

    MySQL JDBCドライバーの接続文字列とはJavaからMySQLデータベースへ接続する際に必要となるのが「JDBC接続文字列」です。まず、MySQLのJDBCドライバーを読み込むためのコードは以下のようになります。Class.forName(com.mysql.jdbc.Driver);ここで指定している Driver はインターフェースであり、このクラスをロードすることでMySQL用のJDBCドライバーが利用可能になります。なお、新しいMySQL Connector/J(バージョン8.0以降)では、ドライバークラス名が com.mysql.cj.jdbc.Driver に変更されている点

  2. MySQLのSMALLINTに相当するJavaの型は?short型との対応関係を解説

    MySQLのSMALLINTに相当するJavaのデータ型は、short型です。Javaのshort型は2バイト(16ビット)の符号付き整数で、-32768から32767までの範囲の値を扱うことができます。MySQLのSMALLINTも同様に2バイトで、同じ範囲の値を格納可能です。MySQLのSMALLINTとJavaのshort型の比較項目MySQL(SMALLINT)Java(short)サイズ2バイト(16ビット)2バイト(16ビット)値の範囲-32768 ~ 32767-32768 ~ 32767備考UNSIGNEDを指定すると0 ~ 65535になる符号付きのみなお、MySQLでUNS