Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

Java JDBC에서 MySQL COUNT 쿼리의 반환 타입은 무엇일까?

Java JDBC에서 MySQL COUNT 쿼리의 반환 타입

MySQL에서 COUNT 함수의 반환 타입은 long입니다. 따라서 Java에서 결과값을 받을 때는 ResultSet의 getLong() 메서드를 사용해야 합니다.

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

이제 실제 예제를 통해 확인해 보겠습니다. 먼저 샘플 데이터베이스 test3에 테이블을 생성하고 데이터를 삽입한 뒤, Java 코드로 COUNT 쿼리의 반환값을 조회하는 과정을 단계별로 살펴봅니다.

1단계: 테이블 생성

다음 쿼리로 CountDemo 테이블을 생성합니다.

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 코드 작성

아래는 Java JDBC를 사용해 MySQL의 COUNT 쿼리 결과를 long 타입으로 받아오는 전체 코드입니다. SQL에서 별칭(alias)인 totalCount를 지정하고, rs.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

이처럼 MySQL의 COUNT 함수는 long 타입을 반환하므로, Java에서 getInt() 대신 getLong()을 사용하는 것이 올바른 방법입니다. 이는 COUNT 결과가 int 범위를 초과할 수 있기 때문이며, 안전하게 처리하기 위한 권장 사항입니다.