Java->;Mysql:get INT不起作用?

Java->;Mysql:get INT不起作用?,java,mysql,Java,Mysql,在我的数据库中有一个名为“failcounter”的字段,它是一个int 我必须使用哪个查询来接收int 我试过: SELECT `failcounter` FROM `randomstuff` 并尝试通过以下方式接收int: if(zrs.next()){ return zrs.getInt(1); }else{ return -99; } 但是我不能得到整数 怎么了 以下是整个方法,可能有问题: public static int getFailCo

在我的数据库中有一个名为“failcounter”的字段,它是一个int

我必须使用哪个查询来接收int

我试过:

SELECT `failcounter` FROM `randomstuff`
并尝试通过以下方式接收int:

  if(zrs.next()){
     return zrs.getInt(1);
  }else{
      return -99;
  }
但是我不能得到整数

怎么了

以下是整个方法,可能有问题:

  public static int getFailCounter() throws Exception {
        try {
          // This will load the MySQL driver, each DB has its own driver
          Class.forName("com.mysql.jdbc.Driver");
          // Setup the connection with the DB
          connect = DriverManager.getConnection(""+MyBot.mysqlDbPath+"",""+MyBot.mysqlDbUsername+"",""+MyBot.mysqlDbPassword+"");
          PreparedStatement zpst=null;
          ResultSet zrs=null;
          zpst=connect.prepareStatement("SELECT `failcounter` FROM `randomstuff`");
          zrs=zpst.executeQuery();
          if(zrs.next()){
             return zrs.getInt(1);
          }else{
              return -99;
          }
        }catch (Exception e) {
              throw e;
            } finally {
              close();
            }
      }
试试这个

ResultSet res = st.executeQuery("SELECT * FROM event"); 
while (res.next()) 
{ 

    int id = res.getInt("id"); 
    String msg = res.getString("msg");
     System.out.println(id + "\t" + msg); 

}
并进一步阅读[如何使用Java连接MySQL数据库]

阅读更多:


祝你好运!

从你的评论
我总是得到-99

就是说,

if(zrs.next()){
             return zrs.getInt(1);
          }
不执行。还可以使用
if(zrs.next())
while(zrs.next())

通常使用“while”循环遍历结果集中的所有数据。当查询按定义返回一行时,使用“if”

因此,在您的情况下,
ResultSet
必须为null,否则列索引可能错误。因此,请首先检查表中的数据
希望这有帮助!

一切正常。程序是否引发了一些异常?如果是,请发布完整堆栈跟踪“无法获取int”既不是有效的Java编译器错误,也不是有效的Java异常,也不是有效的MySQL错误消息。可能是列的类型不是可以作为int获取的。这就是问题所在,没有任何异常,所以idk有什么问题:/@user3220962:从
next()的文档中可以清楚地看到
如果新的当前行有效,则返回
true
;如果没有更多行,则返回
false
。在空结果集上,它始终是
false
。这如何回答此特定问题?