Statement
 
Statement物件用於執行靜態SQL語句和獲得SQL產生的結果。定義了三種執行SQL語句的方法,用來處理返回不同結果的SQL命令:
 
1).executeUpdate(String sql):執行SQL INSERT,UPDATE或DELETE語句,返回受影響行的數目或零;
傳回值為int型
2).executeQuery(String sql):執行返回單個ResultSet的SQL語句;
返回類型ResultSet
3).execute(String sql):執行可以返回多個結果的SQL語句。
返回類型為boolean,如果返回的是更新的數目,則返回false,如果返回ResultSet,則返回true.
 
PreparedStatement
 
PreparedStatement僅僅是預編譯語句。可以使用預留位置。
 
一般在開發中使用PreparedStatement,而不用Statement。
 
1):String sql="insert into tb values(?,?,?)"
在sql字串中所有出現欄位值的地方都用預留位置?代替,而不具體指定。
2):PreparedStatement ps=con.prepareStatement(sql);
對帶有預留位置的sql進行預編譯,再處理該同構sql語句時就不用再編譯了。該語句後要有對各預留位置所代表的參數賦值的語句。在企業級應用中一般為迴圈賦值,因為同構資料量大。
3). ps.setInt(1, 1);
 
ps.setString(2,"123");
 
ps.setString(3,"abc");
 
由於各參數的類型程式師是知道的,所以調用相應的setXXX()方法設置相應類型的值。在也就完成了SQL語句中類型的檢查工作。
注意,這裡的第一個參數是在本SQL語句中是第幾個參數(從1開始),而非在表中的欄位索引。
4):ps.executeUpdate();或
ps.executeQuery();
執行該同構的SQL語句。
注意,由於PreparedStatement是用於解決同構問題的。所以可知,一個SQL語句應該與一個PreparedStatement物件的ps想對應。當ps執行完後,應立即關閉該資源。若需執行多個同構的SQL語句,則應創建多個PreparedStatement物件。
 
同構SQL,是指多個SQL語句,除了欄位值不同外,其他部分完全相同。
 
例如:insert into tb values(1 , "123" , "abc")
 
insert into tb values(2 , "456" , "asd")
 
arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()