2012-04-24 38 views
-1

我在我的代碼中使用了PreparedStatement,因爲我有很多特殊字符要插入到數據庫中。有效地喂入準備狀態

我的一些表格有很多列,所以在一次分配一個參數時看起來有點矯枉過正。指定參數有更好/更高效嗎?

乾杯!

+0

矯枉過正顯然是錯誤的表達在這裏。由於人們的品味不同:你稱之爲「很多列」? 10,20,50,100,1000? – 2012-04-24 11:11:18

+0

就效率而言,就是這樣。在便利性方面,您需要編寫自己的實用程序代碼。 JDBC主要是關於原始性能,而不是便利性。 – 2012-04-24 11:14:17

回答

2

這並不完全清楚你的問題是什麼。

必須單獨在PreparedStatement中設置參數 - 這是因爲您需要告訴PreparedStatement如何在數據庫中表示不同的Java對象。

但是,您可以輕鬆編寫一個類/方法,允許您傳遞參數的一個Object [],然後可以通過適當的索引和對象處理將其添加到PreparedStatement中。

線沿線的東西:

private static void setParameters(PreparedStatement stmt, Object[] args){ 
    for (int i=0; i<args.length; i++){ 
    setArgument(stmt, i+1, args[i]); 
    } 
} 

private static void setArgument(PreparedStatement stmt, int index, Object arg){ 
    if (arg instanceof MyObject){ 
    stmt.set[X](index, handleMyObject(arg)); 
    } 
}