2013-04-10 5 views
0

열거 형과 일치하는 항목을 찾고 싶습니다. Divisions : U6, U7, U8 ... 이 작업을 수행하면 작동합니다. 나는이 작업을 수행 할 때Preparedstatement java

public ArrayList<Training> zoekTrainingen(Ploegen p) throws 
     ApplicationException { 

    ArrayList<Training> tr = new ArrayList<>(); 
    Connection conn = ConnectionManager.getConnection(driver, 
      dburl, login, paswoord); 
    try (PreparedStatement stmt = conn.prepareStatement(
      "select * from trainingen");) { 
     stmt.execute(); 
     ResultSet r = stmt.getResultSet(); 

     while (r.next()) { 
     --- 

     } 
    } catch (SQLException sqlEx) { 
     throw new ApplicationException(""); 
    } 
    finally { 
     return tr; 
    } 
} 

    } 

하지만 :

try (PreparedStatement stmt = conn.prepareStatement(
      "select * from trainingen where Divsion = ?");) { 
      stmt.setString(1, p.getDivision()); 

나는 코드는 Enum를 사용하여 String 매개 변수를 설정하려고 아무에게

답변

0

를 얻을 수 없습니다. Enum의 값은 String이고 setString 메서드로 전달되어야합니다.

try (PreparedStatement stmt = conn.prepareStatement(
      "select * from trainingen where Divsion = ?");) { 
      stmt.setString(1, p.getDivision().toString()); 
+0

제 열거 형에서 문자열을 검색 중이므로 해결책을 찾지 못했습니다. 하지만 고마워. –

+0

'getDivision'가 null을 돌려주지 않는 것을 확인하십시오. setString 메소드에 하드 코딩 된 값을 추가하여 간단한 테스트를 실행할 수도 있습니다. 'setString (1, "something")' –

+0

하드 코딩 된 값은 작동하지만 열거 형에 문제가있을 것입니다. tis : stmt.setString (1, p.getDivision()); 그것은 catch에 직접갑니다. –