2014-02-19 48 views
0

我想動態創建SELECT查詢。想要動態地將列添加到SELECT查詢中。 如果有任何通過使用普通JDBC來完成的方法。我試着創建相同的使用表Bean類通過檢查不空值, Bean bean = new Bean(); bean.setAttribute1(「AAA」);使用簡單JDBC創建動態SELECT查詢

,然後在DN管理器類

if (bean.attribute1 != null) { 
append("COLUMN_1") 
} 

相似,同時從結果集

if (bean.attribute1 != null) { 
rs.getString("COLUMN_1"); 
} 

但這種方法裝載涉及大量的if else條件。 假設如果bean中存在50個屬性,則意味着如果其他條件爲100,則創建查詢條件爲100,並且從結果集中加載50。

有人可以建議我一個更簡單的解決方案嗎?

回答

0

java.sql.DatabaseMetadata可能有助於動態生成有效查詢(例如插入,通過主鍵更新)。 java.sql.ResultSetMetadata可以用於查詢自省(select)。

+0

我想動態創建SELECT查詢 – abc

+0

我認爲它會太複雜,但模板引擎可以幫助(Velocity是一個非常成熟的工具)請參閱這裏的使用示例http://cayenne.apache.org/docs/3.0 /scripting-sqltemplate.html – jbaliuka

+0

有沒有其他簡單的方法來做到這一點? – abc