Java->;Mysql:get INT不起作用?
在我的数据库中有一个名为“failcounter”的字段,它是一个int 我必须使用哪个查询来接收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
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
。这如何回答此特定问题?