2014-07-19 2 views
0

문자열 값을 반환하는 메서드가 있습니다. 먼저 mysql 데이터베이스 @ db4free.net에 연결해야합니다 (연결되어있는 동안 문제가 없는지 확인하고 확인했습니다). 그런 다음 SELECT * FROM ip 쿼리가 실행되는 PreparedStatement이 있습니다. ResultSet은 질의 결과를 저장하지만 result.getString (1)을 수행하면 아무것도 반환하지 않습니다. 아래 코드는 다음과 같습니다 (클래스 클라이언트는 커넥터 btw를 확장합니다)Java : MYSQL ResultSet에 값이 없습니다.

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 데이터베이스에서 스냅 샷입니다 : 문과에는 getString에 대한 매개 변수 테이블의 속성이어야합니다

enter image description here

+0

? 열 이름을 사용하여 결과 집합에서 가져올 열을 분명하게 만드십시오. – Braj

+0

@Braj 아무 것도 없습니다. 다른 방법의 "연결 된"출력을 제외하고 연결 상태가 양호한 지 확인하십시오. – DaBaws

+0

코드를 디버그하고 SOP를 더 추가 한 다음 중단 된 부분을 확인합니다. – Braj

답변

1

그것은 더 나은 전에 문자열을 만들 수 있습니다. result.next()에 대한 statement를 사용하는 경우에만 1 행을 얻으려면, 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; 

}

당신이지고있는 것을 출력
관련 문제