Java JDBCでMySQLのCOUNTクエリを実行したときの戻り値の型は何?取得方法を解説
COUNT関数の戻り値の型は「long」
MySQLのCOUNT()関数をJava JDBCから実行した場合、戻り値の型はlong型になります。結果を取得するには、ResultSetのgetLong()メソッドを使用します。
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型での取得が推奨されます。
-
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 に変更されている点
-
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