2012-07-10 2 views
0

프런트 엔드 - 자바 및 백 엔드 - mysql과 같은 검색 프로그램을 실행하려고합니다.mySql-java 간단한 검색 콘솔 응용 프로그램

나는 여기에 코드입니다, 조금을 시도했다 :

Exception in thread "main" java.sql.SQLException: Column Index out of range, 2 > 1. 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919) 
    at com.mysql.jdbc.ResultSetImpl.checkColumnBounds(ResultSetImpl.java:830) 
    at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5773) 
    at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5692) 
    at Test.searchRecord(Test.java:55) 
    at Test.main(Test.java:37) 

답변

2

getXXX... :

public static void searchRecord() throws SQLException{ 

    Scanner in = new Scanner(System.in); 
    int empnum; 

    System.out.print("Enter employee number: "); 
    empnum = in.nextInt(); 

    String search = "SELECT fname FROM employees WHERE emp_num='"+ empnum + "'"; 
     resultSet = statement.executeQuery(search); 

    String empnum_rs = null;  

    while(resultSet.next()){ 
     empnum_rs = resultSet.getString(empnum); 



    } 

    System.out.print(empnum_rs); 
} 

내가 여기 있어요 문제는 내가 emp_num 일식을 입력 할 때하면이 라인을 던져이다 함수는 1에서 n까지의 열 번호를 사용합니다. 여기서 n은 쿼리에서 선택된 최대 열 수입니다. 쿼리에는 선택 항목이 하나만 있습니다. empnum이 1이 아니므로 오류가 발생합니다.

변경 :

empnum_rs = resultSet.getString(empnum); 

에 :

empnum_rs = resultSet.getString(1); 
+0

오 감사 짝! 내 emp_num에 대한 열을 넣었어야합니다 .. thanks again –

+0

'get ...'메소드에서 coumn 번호 또는 열 이름을 사용할 수 있습니다. –

+0

하지만 lname 열을 추가하면 fname 만 표시됩니다. 성을 어떻게 연결할 수 있습니까? –