1. 程式人生 > >sql中的prepareStatement和createStatement的用法區別

sql中的prepareStatement和createStatement的用法區別


stmt=conn.CreateStatement();
resultSet rs=stmt.executeQuery(sql);        //物件之中沒有sql語句,所以還得用executeQuery()來執行sql語句
上面是statement的用法
============================
下面是PrepareStatement()的用法
ptmt=conn.PreparedStatement(sql);        //物件是用sql語句作為引數來建立的
resultSet rs=ptmt.executeQuery();            //物件之中已經包含有sql語句

prepareStatement()每次訪問資料庫都執行的是同一條sql語句,這樣做有什麼意義?prepareStatement(sql)中的sql語句可以帶?,這個?可以使用setInt(1,int x)或者setString(2,string y)來進行賦值(前一個數字代表sql語句中?的序號),也就是說,雖然執行的是同一條sql語句,但是通過給?賦不同的值,可以得到不同的結果,在需要批量查詢資料庫的地方其執行效率會更高。