我有一个方法,它只返回一个字符串值。首先需要连接到mysql数据库@ db4free.net(我检查并确保连接时没有问题)。然后是PreparedStatement
,其中执行查询SELECT * FROM ip
。 ResultSet存储查询结果,但是当我执行result.getString(1)时,它不返回任何内容。这是我下面的代码(类Client扩展Connector btw)
public String ObtainServerIP(){
if(MYSQLConnection!=null){
try{
PreparedStatement state = MYSQLConnection.prepareStatement("SELECT * FROM "+TableName);
result = state.executeQuery();
result.next();
return result.getString(1);
}catch(Exception e){
return ""+e;
}
}
return "wot m8";
}
上面的代码在Connector类中。
下面的代码是需要打印出来的东西。 (我甚至在结果集上尝试了索引0,但仍然没有。)
public void run(){
while(AppRunning){
if(DatabaseConnection){
System.out.println(ObtainServerIP());
AppRunning=false;
}
}
}
是的,循环工作正常,DatabaseConnection为true,循环使它进入if语句。但是没有任何打印出来。即使是例外情况也不会被打印出来。这是我的MYSQL数据库的快照:
答案 0 :(得分:1)
最好在if语句之前创建一个String,并且getString的参数必须是表的属性。如果你只想获得1行,请使用if语句为result.next(),在其他情况下使用while。试试这个:
public String ObtainServerIP(){
String text;
if(MYSQLConnection!=null){
try{
PreparedStatement state = MYSQLConnection.prepareStatement("SELECT * FROM "+TableName);
result = state.executeQuery();
if (result.next()) {
text = result.getString("InternetProtocol");
}
}catch(Exception e){
text = e.getMessage();
}
}
return text;
}