Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Kiểu dữ liệu trả về của truy vấn COUNT trong MySQL qua Java JDBC

Đáp án ngắn gọn

Kiểu trả về của COUNT(*) trong MySQL qua JDBC là long (tương ứng BIGINT trong MySQL).

Mã Java mẫu

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 query = "SELECT COUNT(*) AS totalCount FROM CountDemo";
            st = con.createStatement();
            rs = st.executeQuery(query);
            rs.next();
            long result = rs.getLong("totalCount");
            System.out.println("Total Count=" + result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Giải thích

  • rs.getLong("totalCount"): Đọc giá trị COUNT dưới dạng long
  • Alias totalCount giúp truy xuất cột dễ dàng hơn
  • MySQL COUNT() trả về BIGINT (8 bytes), khớp với Java long

Chuẩn bị dữ liệu test

mysql> CREATE TABLE CountDemo (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name VARCHAR(20)
);
mysql> INSERT INTO CountDemo(Name) VALUES('John'),('Carol'),('Bob'),('David');
+----+-------+
| Id | Name  |
+----+-------+
| 1  | John  |
| 2  | Carol |
| 3  | Bob   |
| 4  | David |
+----+-------+

Kết quả chạy chương trình

Total Count=4

Lưu ý: Luôn dùng getLong() thay vì getInt() để tránh tràn số khi bảng có nhiều bản ghi (> 2 tỷ).