2013-06-22 3 views
0

Vaadin을 사용하여 데이터베이스 결과 집합을 가져 오는 방법을 이해할 수 없습니다. 먼저 :Vaadin MySQL 가져 오기

JDBCConnectionPool pool=null; 
try{ 
    pool = new SimpleJDBCConnectionPool(dbClass, dbUrl, "root", "toor"); 
}catch(SQLException e){ 
    e.printStackTrace(); 
} 

FreeformQuery query = new FreeformQuery(query_s, pool, "id"); 
try { 
    SQLContainer container = new SQLContainer(query); 
} catch (SQLException e) { 
    e.printStackTrace(); 
} 

이제 어떻게해야합니까? (query_s은 SELECT * FROM users와 같은 간단한 쿼리 문자열입니다.) Freeformstatementdelegate를 사용하려고하는데 사용법을 모르겠습니다. 위와 같은 코드에 대한 최선의 선택입니까?

+0

'이제 어떻게해야합니까?'무엇을하고 싶습니까? 어떻게 든 결과를 표시 하시겠습니까? 약간의 오류가 있습니까? –

답변

0

데이터베이스에서 읽기 전용 결과 만 얻으려면 FreeformStatementDelegate을 사용할 필요가 없습니다.

당신은 단지에 의해 테이블에 datas를 설정할 수 있습니다

Table table = new Table(); 
    table.setContainerDataSource(sqlContainer); 

또는 목록에 결과를 설정합니다

List<String> list = new ArrayList<String>(); 
    for (Object ob : this.sqlContainer.getItemIds()) 
    { 
     list.add(sqlContainer.getItem(ob).getItemProperty(columnName).getValue()); 
    } 

를하지만, 필터링, 정렬 제거하고 게으른 로딩 기능도 원하는 경우, FreeformStatementDelegate을 사용해야합니다.

1) 맞춤 클래스를 만듭니다.
2) FreeformStatementDelegate 인터페이스를 구현하고 메소드를 재정의하십시오.
3) 세트 FreeformQuery.setDelegate(new CustomClass);