2013-06-22 50 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用戶) 我試圖使用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)set FreeformQuery.setDelegate(new CustomClass);