gpt4 book ai didi

java - parseInt SQL 计数(*)

转载 作者:行者123 更新时间:2023-12-01 10:10:44 25 4
gpt4 key购买 nike

我有以下函数,我试图将类(class)注册的学生人数与类(class)最大人数进行比较。如果注册人数大于类(class)上限,我想返回一条消息“类(class)已满”。

我正在尝试将 SQL 语句转换为数字并以这种方式进行比较,但在线上遇到了 java.lang.NumberFormatException:

int currentNumberInClassAsInt

selectedClass 变量是用户输入的他们想要注册的类(class)的编号。

public static void classFullCheck() {
try {
String currentNumberInClassAsString = ("SELECT class_id, COUNT(*) FROM ClassSelector.student_x_class WHERE class_id = " + selectedClass);
rs = myStmt.executeQuery(currentNumberInClassAsString);
int currentNumberInClassAsInt;
if(rs.next()){
currentNumberInClassAsInt = rs.getInt(1);
}
String classSizeAsString = ("SELECT class_size FROM ClassSelector.classes WHERE class_id = " + selectedClass);
rs = myStmt.executeQuery(classSizeAsString);
int classSizeAsInt;
if(rs.next()){
classSizeAsInt = rs.getInt("class_size");
}
if (currentNumberInClassAsInt > classSizeAsInt){
System.out.println("Sorry, this class is Full!");
}
} catch (java.sql.SQLException SQL) {
SQL.printStackTrace();
}
}

我的 SQL 表布局是:

学生

学生 ID |学生姓名 |家乡

类(class)

class_id |类名 |描述class_size

学生_x_类(class)

学生 ID |学生姓名 |类(class) ID |类名

如果我遗漏了任何重要信息,请告诉我。任何建议将不胜感激!

最佳答案

您应该使用 ResultSet 检索数据

int currentNumberInClassAsInt = rs.getInt("count"); // Getting the value of column "count"

或者

int currentNumberInClassAsInt = rs.getInt(2); // Getting the value of second column
<小时/>

最好的方法是首先检查 rs.next() 是否返回 true,否则会出现异常

<小时/>
int currentNumberInClassAsInt;
if (rs.next()) {
currentNumberInClassAsInt = rs.getInt(2);
}

关于java - parseInt SQL 计数(*),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36141635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com