Simple DB Object Builder |
|||||||||||||
|
Query Object 進階應用在此我們會解釋 Query Object
二種進階應用法
Query
Object 和 Table Object 作法相同。在執行查詢前,會先動態組成 SQL 字串,之後再將該字串創建成
PreparedStatement 物件。
所以我們可以在 Query Object 的 SQL 字串中加入 PreparedStatement 的參數,如下: SELECT
o.customerNumber, c.customerName, o.orderNumber, o.orderDate
FROM customers c,orders o where c.customerNumber = o.customerNumber and c.customerNumber > ? order by c.customerNumber 選 取 Query Object 中的 Prepared Statement Parameter 頁面。按下 Add Parameter,在 Type 下選則該 Parameter 的型別,在 Name 的部份則填入變數名稱(在產出碼中使用),在 Sample Data 則填入樣本資料(在執行測試 SQL 時需要,若你不執行測試 SQL 的話,就不需要填入)。結果如下: 按下 Execute Query 則可以看到測試 SQL 的結果,如下: 若結果符合你的預期,則可以按下 Generate Source 來產出 Java 原始碼。 在產出碼中,原 executeQuery 的方法就會變成下面的方式: public static MyQry001[]
executeQuery(Connection
conn ,Integer
custNumber )
之後就可以在執行時期呼叫該方法並帶入所需的參數,如下: 。。。
MyQry001[] myQry001s = MyQry001.executeQuery(conn ,100 ); 。。。 MyQry001[] myQry001s = MyQry001.executeQuery(conn ,200 );
format
string 的用法是在 Query Object 在將動態組成的 SQL 字串在建構成 Prepared Statement 之前,先呼叫 java.lang.String.format(...)
將動態組成的 SQL 字串作最後的修正後,再建構成 Prepared Statement。
所以我們可以在 Query SQL 的字串中加入 string format 的參數,如下: SELECT
o.customerNumber, c.customerName, o.orderNumber, o.orderDate
FROM customers c,orders o where c.customerNumber = o.customerNumber %s order by c.customerNumber 選 取 Query Object 中的 String Format Parameter 頁面。按下 Add Parameter,在 Name 的部份則填入變數名稱(在產出碼中使用),在 Sample Data 則填入樣本資料(在執行測試 SQL 時需要,若你不執行測試 SQL 的話,就不需要填入)。結果如下: 按下 Execute Query 則可以看到測試 SQL 的結果,如下: 若結果符合你的預期,則可以按下 Generate Source 來產出 Java 原始碼。 在產出碼中,原 executeQuery 的方法就會變成下面的方式: public static MyQry002[]
executeQuery(Connection
conn ,String
subCondition01 )
之後就可以在執行時期呼叫該方法並帶入所需的參數,如下: 。。。
MyQry002[] myQry002s = MyQry002.executeQuery(conn ," and c.customerNumber > 100 " ); 。。。 MyQry002[] myQry002s = MyQry002.executeQuery(conn ," and c.customerNumber < 500 " ); |
||||||||||||