jdbc preparestatement和preparestatement區別


1.preparestatement預編譯,預編譯指的是DB的編譯器,會對此sql語句提前編譯。然后將預編譯的結果緩存到數據庫中,下次執行時替換參數直接執行編譯過的語句。

記住:數據庫也是有編譯器的,編譯的是sql執行命令啊 。

所以每次執行sql語句時,如果每次都要數據庫編譯器編譯sql語句,當然很費時。

Connection connection = DBUtils.getInstance().connectDB();
        java.sql.PreparedStatement preparestatement = connection.prepareStatement("insert into countip(time,address) values(?,?)");//db編譯器預編譯此sql語句,將編譯結果緩存在數據庫中,下次替換參數直接執行
        for(int i = 0;i<100;i++)
        {
            preparestatement.setString(1, "12");
            preparestatement.setString(2, "21");
        }    
        long duration = System.currentTimeMillis()-beginTime;

 

2.statement是每次都需要數據庫編譯器編譯的。

Connection connection = DBUtils.getInstance().connectDB();
        java.sql.Statement statement = connection.createStatement();
        for(int i = 0;i<100;i++)
        {
           statement.execute("inerst into countip(accessTime,ipAddress) values(15,123)");//每次都會DB編譯器編譯sql語句執行,耗費時間
        }    
        long duration = System.currentTimeMillis()-beginTime;
        System.out.println("持續時間:"+duration);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM