无法让我的 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 存储我的结果集中的整数值的主要内容,如果未能解决你的问题,请参考以下文章