在我的数据库中有一个名为'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();
}
}
答案 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
最好的运气!