氟塑料離心泵www.buybeng.com

          jquery教程http://www.software8.co/wzjs/jquery/

          JAVA基礎(chǔ) 之 PreparedStatement

          概述:

              1.本文為了代碼結(jié)構(gòu)清晰 采用的是try-with-resource結(jié)構(gòu),請在java7下使用(或者自己改成普通模式)

              2.預(yù)編譯的sql語句存儲在PreparedStatement對象中,所以PreparedStatement的執(zhí)行效率要高于Statement

              3.使用占位符(?)的方式,使得重復(fù)的結(jié)構(gòu)重復(fù)的語句不用重復(fù)的編寫

                 例如:Statement下如果我想插入兩條記錄

                     stmt.addBatch("insert into t_student values ('11','小明','男')");

                     stmt.addBatch("insert into t_student values ('22','小明2','男')");

                     PreparedStatement下 使用占位符,只需要錄入占位符的數(shù)據(jù)即可

                     con.prepareStatement("insert into t_student values (?,?,?)"); 具體見例子

              4.這樣的好處:

                 1.防止重復(fù)編寫多個結(jié)構(gòu)類似的sql語句

                 2.沒有拼接字符串的煩惱

                 3.防止sql注入(拼接字符串 會帶來sql注入問題)

                 4.sql語句預(yù)編譯在PreparedStatement對象中,性能好

              5.使用前建議先看看Statement相關(guān)文章,很多方法類似
          原文參考自站長網(wǎng):http://www.software8.co/wzjs/java/3167.html

          Java代碼:  
          1. package com.cxy.jdbc;  
          2. import java.sql.Connection;  
          3. import java.sql.DriverManager;  
          4. import java.sql.PreparedStatement;  
          5. import java.sql.ResultSet;  
          6. import java.sql.ResultSetMetaData;  
          7. import java.sql.SQLException;  
          8. /** 
          9.  * @author cxy 
          10.  */  
          11. public class PreparedStatementTest  
          12. {  
          13.     public static void main(String[] args)  
          14.     {  
          15.         try(  
          16.                 Connection con=DriverManager.getConnection("jdbc:mysql://localhost/dbtest", "root", "root");  
          17.                 PreparedStatement pstmt=con.prepareStatement("insert into t_student values (?,?,?)");  
          18.            )  
          19.            {  
          20.                 //executeUpdate 執(zhí)行插入語句  
          21.                 pstmt.setString(1, "123");  
          22.                 pstmt.setString(2, "小紅");  
          23.                 pstmt.setObject(3, "女"); //如果不知道占位符是什么類型的數(shù)據(jù)就用setObject,jdbc會自動為您轉(zhuǎn)成合適的類型  
          24.                 pstmt.executeUpdate();  
          25.                 System.out.println("=======================");  
          26.                   
          27.                 //clearParameters:清理當前的參數(shù),如果直接執(zhí)行會帶來異常:No value specified for parameter 1  
          28.                 //pstmt.clearParameters();  
          29.                 //pstmt.executeUpdate();   
          30.                 //executeQuery執(zhí)行查詢語句,返回結(jié)果集  
          31.                 PreparedStatement pstmt1=con.prepareStatement("select * from t_student");  
          32.                 printResultSet(pstmt1.executeQuery());  
          33.                 System.out.println("=======================");  
          34.                 //ResultSetMetaData:ResultSet對象的相關(guān)信息  
          35.                 ResultSetMetaData rsmd = pstmt1.getMetaData();  
          36.                 System.out.println("結(jié)果集字段的個數(shù):"+rsmd.getColumnCount());  
          37.                 System.out.println("表名:"+rsmd.getTableName(1)); //獲得指定參數(shù)所在表的表名  
          38.                 //更多的方法請看ResultSetMetaData相關(guān)文章  
          39.            }catch(Exception e)  
          40.            {e.printStackTrace();  
          41.                System.out.println("數(shù)據(jù)庫操作出現(xiàn)異常");  
          42.            }  
          43.     }  
          44.     public  static void printResultSet(ResultSet rs2)  
          45.     {  
          46.         try  
          47.         {  
          48.             while(rs2.next())  
          49.             {  
          50.                 System.out.println(rs2.getString(1)+"\t"+rs2.getString(2)+"\t"+rs2.getString(3));  
          51.             }  
          52.         } catch (SQLException e)  
          53.         {  
          54.             e.printStackTrace();  
          55.         }  
          56.     }  
          57. }  

          posted on 2013-03-04 08:34 你爸是李剛 閱讀(1802) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          <2013年3月>
          242526272812
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          技術(shù)網(wǎng)站

          行業(yè)網(wǎng)站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          站長網(wǎng) 氟塑料離心泵 注塑機 液晶廣告機
          主站蜘蛛池模板: 敦化市| 耒阳市| 宜丰县| 梧州市| 昆明市| 安徽省| 尖扎县| 徐水县| 惠安县| 湘潭市| 涪陵区| 隆回县| 个旧市| 遵化市| 新绛县| 乐陵市| 岳西县| 交城县| 得荣县| 广饶县| 兴安盟| 合阳县| 林州市| 库伦旗| 古蔺县| 衡水市| 永兴县| 泾川县| 孝昌县| 忻州市| 南丰县| 吐鲁番市| 永修县| 正宁县| 锡林浩特市| 莫力| 宁海县| 通许县| 江门市| 南丹县| 郧西县|