2013-08-24 94 views
0

我在寫一個與數據庫交互的應用程序。我想用PreparedStatement來執行查詢,但我必須做的查詢數很高,並且可能在將來增加。
我只知道寫一個特定的查詢函數來執行它,並不能想出更好的方法來執行它。爲數據庫設計查詢類

例如查詢可以是:

SELECT * 
FROM TABLE_NAME 
WHERE TABLE_NAME.ATTRIBUTE_NAME = ? 

SELECT * 
FROM TABLE_NAME 
WHERE TABLE_NAME.ATTRIBUTE_NAME = ? 
     AND TABLE_NAME.ATTRIBUTE_NAME1 = ? 

,我會寫一個獨立的功能同時執行(如何做一個查詢an example),但我知道這不是一個模塊化的方式來做到這一點。

有沒有更好的方法來做到這一點?

+0

爲什麼不看一眼Spring JDBC的支持,並簡單地使用DAO /服務來執行查詢? DAO/Service只是一種模式,可以在春季以外使用 –

+0

@bellabax我不知道這一點。我過去只在'jdbc'上工作過。請隨時詳細說明是否有其他方式來做到這一點(儘管我會檢查出來)。 –

回答

0

IMO一個非常好的解決方案可以使用JOOQ庫。
只是

  • 創建數據庫架構
  • 連接到數據庫
  • 用流利的API基於您生成的數據庫 架構元模型來創建查詢

(您也可以使用簡單SQL-executor like描述here
完成。這是你的圖書館。

後,從程序上下文中分離出來,創建一個類似

interface MyOperations { 
    public int getUserById(int userID); 
} 

class MyOperationsImpl implements MyOperations { 

    public MyOperationsImpl(Connection connection) {...} 

    int getUserById(int userID) { 
    DSLContext create = DSL.using(this.connection, SQLDialect.MYSQL); 
    create.select().from(USERS).where(USERS.ID.equal(userID)); 
    } 
} 

這可以回答你的問題或以某種方式幫助界面?