氟塑料離心泵www.buybeng.com

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

          JAVA基礎(chǔ) 之 PreparedStatement

          概述:

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

              2.預(yù)編譯的sql語句存儲(chǔ)在PreparedStatement對(duì)象中,所以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ù)編寫多個(gè)結(jié)構(gòu)類似的sql語句

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

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

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

              5.使用前建議先看看Statement相關(guān)文章,很多方法類似
          原文參考自站長(zhǎng)網(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會(huì)自動(dòng)為您轉(zhuǎn)成合適的類型  
          24.                 pstmt.executeUpdate();  
          25.                 System.out.println("=======================");  
          26.                   
          27.                 //clearParameters:清理當(dāng)前的參數(shù),如果直接執(zhí)行會(huì)帶來異常: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對(duì)象的相關(guān)信息  
          35.                 ResultSetMetaData rsmd = pstmt1.getMetaData();  
          36.                 System.out.println("結(jié)果集字段的個(gè)數(shù):"+rsmd.getColumnCount());  
          37.                 System.out.println("表名:"+rsmd.getTableName(1)); //獲得指定參數(shù)所在表的表名  
          38.                 //更多的方法請(qǐng)看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 你爸是李剛 閱讀(1801) 評(píng)論(0)  編輯  收藏


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


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

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

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

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

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          站長(zhǎng)網(wǎng) 氟塑料離心泵 注塑機(jī) 液晶廣告機(jī)
          主站蜘蛛池模板: 成武县| 台安县| 永德县| 武清区| 大宁县| 榆林市| 金平| 莆田市| 银川市| 襄城县| 鹿泉市| 新营市| 乾安县| 新郑市| 德兴市| 沾化县| 长沙县| 元阳县| 仁化县| 平果县| 资兴市| 大连市| 灯塔市| 沾益县| 永济市| 岢岚县| 上林县| 河西区| 武城县| 宿迁市| 龙里县| 安新县| 昭平县| 临洮县| 江阴市| 五大连池市| 碌曲县| 鸡泽县| 枣强县| 西贡区| 昌江|