Java - > Mysql:得到INT不起作用?

时间:2014-04-30 12:21:09

标签: java mysql

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

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

我试过:

SELECT `failcounter` FROM `randomstuff`

并尝试通过以下方式接收int:

  if(zrs.next()){
     return zrs.getInt(1);
  }else{
      return -99;
  }

但我无法获得int。

什么错了? =)

这是整个方法,也许是错误的:

  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();
            }
      }

2 个答案:

答案 0 :(得分:2)

来自您的评论I always get -99

这意味着,

if(zrs.next()){
             return zrs.getInt(1);
          }

没有被执行。还要了解使用if(zrs.next())while(zrs.next())

的差异

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

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

答案 1 :(得分:-1)

试试这个。

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数据库

了解详情:http://mrbool.com/how-to-connect-with-mysql-database-using-java/25440#ixzz30N93JAkm] 1

最好的运气!