<form id="dlljd"></form>
        <address id="dlljd"><address id="dlljd"><listing id="dlljd"></listing></address></address>

        <em id="dlljd"><form id="dlljd"></form></em>

          <address id="dlljd"></address>
            <noframes id="dlljd">

              聯系我們 - 廣告服務 - 聯系電話:
              您的當前位置: > 關注 > > 正文

              Statement、PreparedStatement、CallableStatement有什么區別?三者區別的詳情介紹

              來源:CSDN 時間:2023-03-06 07:58:38

              JDBC:

              Statement(接口)      | PreparedStatement(接口)      | CallableStatement(接口) 以上三者為繼承關系。

              一、Statement


              (資料圖片僅供參考)

              用于執行不帶參數的簡單SQL語句,每次執行SQL語句,數據庫都要執行SQL語句的編譯,最好用于僅執行一次查詢并返回結果情形,效率高于PreparedStatement

              stmt=con.createStatement();            stmt.execute("insert into employee values(1,"jim1",25)");rs=stmt.executeQuery("select * from employee");while(rs.next()){System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getInt(3));}

              二、PreparedStatement:預編譯的SQL語句的對象

              執行的SQL語句中是可以帶參數的,并支持批量執行SQL。

              由于采用cache機制,則預先編譯的語句,就會放在cache中,下次執行相同SQL語句,則直接從cache中取出來

              con=DriverManager.getConnection(url,user,password);pstmt=con.prepareStatement("update employee set age=? where id=?");pstmt.setInt(1, 30);pstmt.setInt(2, 3);pstmt.executeUpdate();

              三、CallableStatement

              提供了用來調用數據庫中存儲過程的接口,如果有輸出參數要注冊,說明是輸出參數

              四、PreparedStatement與Statement區別

              ①代碼可讀性和可維護性更好

              int id=4;String name="jim4";int age=24;stmt.execute("insert into employee values(""+id+"",""+name+"",""+age+"")");

              ②安全性更好

              在SQL中有萬能鑰匙"OR 1="1,在Statement中是將參數直接放入SQL語句中連接到一起執行

              String name="jim4 "OR 1="1";rs=stmt.executeQuery("select * from employee where name=""+name+""");

              在PreparedStatement中,是將jim4 "OR 1="1作為一個字符串賦值給?,作為name字段對應的值,顯然這樣注入就無從談起了

              ③效率更高

              每一種數據庫都會盡最大努力對預編譯語句提供最大的性能優化,因為預編譯語句有可能會被重復調用。當下次調用時無需編譯,只要將參數直接傳入編譯過的語句執行代碼中就會執行。

              責任編輯:

              標簽:

              相關推薦:

              精彩放送:

              新聞聚焦

              關于我們 | 聯系我們 | 投稿合作 | 法律聲明 | 廣告投放

              版權所有©2017-2020   太陽信息網京ICP備2021034106號-55

              所載文章、數據僅供參考,使用前務請仔細閱讀網站聲明。本站不作任何非法律允許范圍內服務!

              聯系我們:55 16 53 8 @qq.com

              Top 中文字幕在线观看亚洲日韩