无法让我的 jsp 存储我的结果集中的整数值

Posted

技术标签:

【中文标题】无法让我的 jsp 存储我的结果集中的整数值【英文标题】:Can't get my jsp to store the integer value from my result set 【发布时间】:2020-03-15 12:06:28 【问题描述】:

我要做的就是从单元格中提取整数值。当我在我的 sql 工作台中运行命令时,我得到了正确的值 screenshot of db output 但是当我在编程环境中执行代码时,我得到“在第 [24] 行发生异常处理 [/registration.jsp]”,即这一行 @ 987654322@ 该程序有一个初始 html 页面,用户可以在其中输入所需的密码、名字和姓氏。然后它将信息发送到 jsp,该 jsp 应该将该信息从当前的最高值增加 1,然后使用所述信息创建一个新的表条目。

int idnum = 0;
String pwd = request.getParameter("pwd");
String fname = request.getParameter("fname");
String lname = request.getParameter("lname");
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/assignment2", "root",
        "has the actual password in the code");
Statement stmt = conn.createStatement();
String query = "SELECT MAX(idnum) FROM users";
ResultSet rs = stmt.executeQuery(query);

idnum = rs.getInt("MAX(idnum)")+1;

【问题讨论】:

如果你改用rs.getInt(1) 会发生什么? 【参考方案1】:

替换

idnum = rs.getInt("MAX(idnum)")+1;

if (rs.next())
    idnum = rs.getInt(1)+1;

请注意,如果不调用next() 方法,结果集指针/光标将不会移动到第一行(从默认位置开始)。

【讨论】:

【参考方案2】:

这应该可行:

String query = "SELECT MAX(idnum) as maxNum FROM users";
ResultSet rs = stmt.executeQuery(query);

if(rs.next()
     idnum = rs.getInt("maxNum")+1;

【讨论】:

以上是关于无法让我的 jsp 存储我的结果集中的整数值的主要内容,如果未能解决你的问题,请参考以下文章

将结果集从 jsp 转移到 html 页面

如何在codeigniter中使用存储过程的结果集

要列出的结果集

db2 你可以在同一个存储过程中更改游标结果集吗?

结果集到分页

可以通过查询结果获取结果集行数吗?