繁体   English   中英

如何在JDBC中检索MySQL主键的最大值?

[英]How can I retrieve the maximum value of a MySQL primary key in JDBC?

我正在处理此代码,但没有用。 我提出了另一个查询正在工作,但不是这个。 帮助将不胜感激。

try {
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    Connection con1 = null;
    con1 = DriverManager.getConnection("jdbc:mysql://localhost:3306/itcomplaintsystem", "root", "colbiecaillat");
    Statement stmt = con1.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT MAX(PHONE) FROM complaints");

    if(rs != null)
    {         
        while(rs.next())
        {
            String cno=rs.getString("C_NO");
            out.println(cno);
        }
    }

    stmt.close();
    rs.close();
    con1.close();
}
catch(Exception e){
    out.println(e);
}

您选择的查询部分没有C_NO,如果您需要最大电话数,那么您的查询将是:

SELECT MAX(PHONE) as max_phone FROM complaints

假设电话很长,您的完整代码将为:

try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con1 = null;
con1 = DriverManager.getConnection("jdbc:mysql://localhost:3306/itcomplaintsystem", "root", "colbiecaillat");
Statement stmt = con1.createStatement();
ResultSet rs = stmt.executeQuery("SELECT MAX(PHONE) as max_phone FROM complaints");

if(rs != null)
{         
    while(rs.next())
    {
        Long cno=rs.getLong("max_phone");
        out.println(cno);
    }
}

stmt.close();
rs.close();
con1.close();
}
catch(Exception e){
out.println(e);
}

在您的查询中

SELECT MAX(PHONE) FROM complaints

您没有为结果分配别名。 这些函数通常返回随机或默认列名,因此当您执行

String cno=rs.getString("C_NO");

结果集上不存在C_NO列。

要解决此问题,请像这样解决您的查询

SELECT MAX(PHONE) as C_NO FROM complaints

as C_NO我为该列提供您要获取的别名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM