婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > JSP中的PreparedStatement對象操作數據庫的使用教程

JSP中的PreparedStatement對象操作數據庫的使用教程

熱門標簽:南京新思維電話機器人 南昌市地圖標注app 好操作的電話機器人廠家 地圖標注市場怎么樣 如何用中國地圖標注數字點 泰州泰興400電話 怎么申請 百度地圖添加標注圖標樣式 企業怎么在聯通申請400電話 聊城智能電銷機器人外呼

PreparedStatement接口繼承Statement,并與之在兩方面有所不同:
PreparedStatement 實例包含已編譯的 SQL 語句。這就是使語句“準備好”。包含于 PreparedStatement 對象中的 SQL 語句可具有一個或多個 IN 參數。IN參數的值在 SQL 語句創建時未被指定。相反的,該語句為每個 IN 參數保留一個問號(“?”)作為占位符。每個問號的值必須在該語句執行之前,通過適當的setXXX 方法來提供。
由于 PreparedStatement 對象已預編譯過,所以其執行速度要快于 Statement 對象。因此,多次執行的 SQL 語句經常創建為 PreparedStatement 對象,以提高效率。
作為 Statement 的子類,PreparedStatement 繼承了 Statement 的所有功能。另外它還添加了一整套方法,用于設置發送給數據庫以取代 IN 參數占位符的值。同時,三種方法 execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要參數。這些方法的 Statement 形式(接受 SQL 語句參數的形式)不應該用于 PreparedStatement 對象。
1、創建 PreparedStatement 對象
以下的代碼段(其中 con 是 Connection 對象)創建包含帶兩個 IN 參數占位符的 SQL 語句的 PreparedStatement 對象:
PreparedStatement pstmt = con.prepareStatement("UPDATE table4 SET m = ? WHERE x = ?");
pstmt 對象包含語句 "UPDATE table4 SET m = ? WHERE x = ?",它已發送給DBMS,并為執行作好了準備。
2、傳遞 IN 參數
在執行 PreparedStatement 對象之前,必須設置每個 ? 參數的值。這可通過調用 setXXX 方法來完成,其中 XXX 是與該參數相應的類型。例如,如果參數具有Java 類型 long,則使用的方法就是 setLong。setXXX 方法的第一個參數是要設置的參數的序數位置,第二個參數是設置給該參數的值。例如,以下代碼將第一個參數設為 123456789,第二個參數設為 100000000:

pstmt.setLong(1, 123456789);
pstmt.setLong(2, 100000000);

一旦設置了給定語句的參數值,就可用它多次執行該語句,直到調用clearParameters 方法清除它為止。在連接的缺省模式下(啟用自動提交),當語句完成時將自動提交或還原該語句。
如果基本數據庫和驅動程序在語句提交之后仍保持這些語句的打開狀態,則同一個 PreparedStatement 可執行多次。如果這一點不成立,那么試圖通過使用PreparedStatement 對象代替 Statement 對象來提高性能是沒有意義的。
利用 pstmt(前面創建的 PreparedStatement 對象),以下代碼例示了如何設置兩個參數占位符的值并執行 pstmt 10 次。如上所述,為做到這一點,數據庫不能關閉 pstmt。在該示例中,第一個參數被設置為 "Hi"并保持為常數。在 for 循環中,每次都將第二個參數設置為不同的值:從 0 開始,到 9 結束。

pstmt.setString(1, "Hi");
for (int i = 0; i  10; i++) {
 pstmt.setInt(2, i);
 int rowCount = pstmt.executeUpdate();
}

3、IN 參數中數據類型的一致性
setXXX 方法中的 XXX 是 Java 類型。它是一種隱含的 JDBC 類型(一般 SQL 類型),因為驅動程序將把 Java 類型映射為相應的 JDBC 類型(遵循該 JDBCGuide中§8.6.2 “映射 Java 和 JDBC 類型”表中所指定的映射),并將該 JDBC 類型發送給數據庫。例如,以下代碼段將 PreparedStatement 對象 pstmt 的第二個參數設置為 44,Java 類型為 short:
pstmt.setShort(2, 44);
驅動程序將 44 作為 JDBC SMALLINT 發送給數據庫,它是 Java short 類型的標準映射。
程序員的責任是確保將每個 IN 參數的 Java 類型映射為與數據庫所需的 JDBC 數據類型兼容的 JDBC 類型。不妨考慮數據庫需要 JDBC SMALLINT 的情況。如果使用方法 setByte ,則驅動程序將 JDBC TINYINT 發送給數據庫。這是可行的,因為許多數據庫可從一種相關的類型轉換為另一種類型,并且通常 TINYINT 可用于SMALLINT 適用的任何地方
預處理語句對象PreparedStatement,使用PreparedStatement進行添加數據,更新數據,刪除數據和查詢數據

實例:
1.添加數據

%@page language="java" contentType="text/html;charset=gb2312"%>
%@page import="java.sql.*" %>
!DOCTYPE html>
html>
  head>
    title>獲得第二條記錄開始的三條記錄/title>
  /head>
  body>
    %
      String url = "jdbc:mysql://localhost:3306/javaweb";//連接數據庫的url地址
      String user = "root";//登錄數據庫的用戶名
      String password = "zhangda890126;;";//登錄數據庫的用戶名的密碼
      Connection conn = null;//鏈接對象
      PreparedStatement pstmt = null;//語句對象
      //ResultSet rs = null;//結果集對象
      try{
        Class.forName("com.mysql.jdbc.Driver");//加載JDBC驅動程序
        conn = DriverManager.getConnection(url,user,password);//鏈接數據庫
      }catch(ClassNotFoundException e){
        out.println("找不到驅動類");//拋出異常時,提示信息
      }catch(SQLException e){
        out.println("鏈接MySQL數據庫失敗");//處理SQLException異常
      }
      try{
        String adduser = "INSERT INTO user (userid,username,password) VALUES(null,?,?)";//添加一條用戶信息
        pstmt = conn.span style="color:#e53333;">b>prepareStatement/b>/span>(adduser);//創建預處理語句對象PreparedStatement
         
        //設置參數
        pstmt.setString(1,"YAO");
        pstmt.setString(2,"yao");
         
        //執行語句
        pstmt.executeUpdate();
         
      }catch(SQLException e){
        out.println("添加用戶信息失敗");
      }
       
      try{
        if(pstmt != null){
          pstmt.close();
          conn = null;
        }
        if(conn != null){
          conn.close();
          conn = null;
        }
      }catch(Exception e){
       
        out.println("數據庫關閉失敗");
      }
    %>
  /body>
/html>

提示一下一定不要用錯大小寫,紅色標記就是因為我前面的字母大寫,花費了很長時間

2.更新數據

%@page language="java" contentType="text/html;charset=gb2312"%>
%@page import="java.sql.*" %>
!DOCTYPE html>
html>
  head>
    title>獲得第二條記錄開始的三條記錄/title>
  /head>
  body>
    %
      String url = "jdbc:mysql://localhost:3306/javaweb";//連接數據庫的url地址
      String user = "root";//登錄數據庫的用戶名
      String password = "zhangda890126;;";//登錄數據庫的用戶名的密碼
      Connection conn = null;//鏈接對象
      PreparedStatement pstmt = null;//語句對象
      //ResultSet rs = null;//結果集對象
      try{
        Class.forName("com.mysql.jdbc.Driver");//加載JDBC驅動程序
        conn = DriverManager.getConnection(url,user,password);//鏈接數據庫
      }catch(ClassNotFoundException e){
        out.println("找不到驅動類");//拋出異常時,提示信息
      }catch(SQLException e){
        out.println("鏈接MySQL數據庫失敗");//處理SQLException異常
      }
      try{
        String updateuser = "UPDATE user SET password = ? WHERE userid = ?";//添加一條用戶信息
        pstmt = conn.prepareStatement(updateuser);//創建預處理語句對象PreparedStatement
         
        //設置參數
        pstmt.setString(1,"hello world");
        pstmt.setInt(2,1);
         
        //執行語句
        pstmt.executeUpdate();
         
      }catch(SQLException e){
        out.println("添加用戶信息失敗");
      }
       
      try{
        if(pstmt != null){
          pstmt.close();
          conn = null;
        }
        if(conn != null){
          conn.close();
          conn = null;
        }
      }catch(Exception e){
       
        out.println("數據庫關閉失敗");
      }
    %>
  /body>
/html>

3.刪除數據

%@page language="java" contentType="text/html;charset=gb2312"%>
%@page import="java.sql.*" %>
!DOCTYPE html>
html>
  head>
    title>獲得第二條記錄開始的三條記錄/title>
  /head>
  body>
    %
      String url = "jdbc:mysql://localhost:3306/javaweb";//連接數據庫的url地址
      String user = "root";//登錄數據庫的用戶名
      String password = "zhangda890126;;";//登錄數據庫的用戶名的密碼
      Connection conn = null;//鏈接對象
      PreparedStatement pstmt = null;//語句對象
      //ResultSet rs = null;//結果集對象
      try{
        Class.forName("com.mysql.jdbc.Driver");//加載JDBC驅動程序
        conn = DriverManager.getConnection(url,user,password);//鏈接數據庫
      }catch(ClassNotFoundException e){
        out.println("找不到驅動類");//拋出異常時,提示信息
      }catch(SQLException e){
        out.println("鏈接MySQL數據庫失敗");//處理SQLException異常
      }
      try{
        String deleteuser = "DELETE FROM user WHERE userid = ?";//添加一條用戶信息
        pstmt = conn.prepareStatement(deleteuser);//創建預處理語句對象PreparedStatement
         
        //設置參數
        pstmt.setInt(1,2);
         
        //執行語句
        pstmt.executeUpdate();
         
      }catch(SQLException e){
        out.println("添加用戶信息失敗");
      }
       
      try{
        if(pstmt != null){
          pstmt.close();
          conn = null;
        }
        if(conn != null){
          conn.close();
          conn = null;
        }
      }catch(Exception e){
       
        out.println("數據庫關閉失敗");
      }
    %>
  /body>
/html>

4.查詢數據

%@page language="java" contentType="text/html;charset=gb2312"%>
%@page import="java.sql.*" %>
!DOCTYPE html>
html>
  head>
    title>獲得第二條記錄開始的三條記錄/title>
  /head>
  body>
    %
      String url = "jdbc:mysql://localhost:3306/javaweb";//連接數據庫的url地址
      String user = "root";//登錄數據庫的用戶名
      String password = "zhangda890126;;";//登錄數據庫的用戶名的密碼
      Connection conn = null;//鏈接對象
      PreparedStatement pstmt = null;//語句對象
      ResultSet rs = null;//結果集對象
      try{
        Class.forName("com.mysql.jdbc.Driver");//加載JDBC驅動程序
        conn = DriverManager.getConnection(url,user,password);//鏈接數據庫
      }catch(ClassNotFoundException e){
        out.println("找不到驅動類");//拋出異常時,提示信息
      }catch(SQLException e){
        out.println("鏈接MySQL數據庫失敗");//處理SQLException異常
      }
      try{
        String queryAll = "SELECT * FROM user LIMIT ?,?;";//添加一條用戶信息
        pstmt = conn.prepareStatement(queryAll);//創建預處理語句對象PreparedStatement
         
        //設置參數
        pstmt.setInt(1,2);
        pstmt.setInt(2,5);
         
        //執行語句
        rs = pstmt.executeQuery();
         
        while(rs.next()){
          int userid = rs.getInt(1);
          String username = rs.getString(2);
          String userpassword = rs.getString(3);
          out.println("用戶的ID:"+userid+"用戶名:"+username+"用戶的密碼:"+userpassword+"br />");
        }
         
      }catch(SQLException e){
        out.println("添加用戶信息失敗");
      }
       
      try{
        if(pstmt != null){
          pstmt.close();
          conn = null;
        }
        if(conn != null){
          conn.close();
          conn = null;
        }
      }catch(Exception e){
       
        out.println("數據庫關閉失敗");
      }
    %>
  /body>
/html>

您可能感興趣的文章:
  • JSP中操作數據庫的常用SQL標簽用法總結
  • jsp從數據庫獲取數據填充下拉框實現二級聯動菜單的方法
  • JSP中使用JDBC訪問SQL Server 2008數據庫示例
  • Java實現JSP在Servelt中連接Oracle數據庫的方法
  • jsp讀取數據庫實現分頁技術簡析
  • jsp 從web.xml讀取連接數據庫的參數
  • JSP連接MySql/MS SQL Server/Oracle數據庫連接方法[整理]
  • Jsp連接Access數據庫(不通過建立ODBC數據源的方法)
  • JSP連接Access數據庫
  • 利用asp或jsp,flash怎樣把數據庫中的一張表中的所有記錄讀取并顯示出來
  • JSP數據庫操數據分頁顯示
  • 在JSP中訪問Oracle數據庫
  • 如何使用JSP訪問MySQL數據庫

標簽:吉林 銅川 山南 自貢 烏蘭察布 開封 白銀 臨汾

巨人網絡通訊聲明:本文標題《JSP中的PreparedStatement對象操作數據庫的使用教程》,本文關鍵詞  JSP,中的,PreparedStatement,對象,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《JSP中的PreparedStatement對象操作數據庫的使用教程》相關的同類信息!
  • 本頁收集關于JSP中的PreparedStatement對象操作數據庫的使用教程的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    99久精品国产| 精品视频在线视频| 国产日产精品1区| 不卡的电视剧免费网站有什么| 综合色天天鬼久久鬼色| 欧美日韩在线观看一区二区 | 久久九九国产精品| 高清shemale亚洲人妖| 一区二区三区影院| 久久―日本道色综合久久| www.在线成人| 午夜欧美大尺度福利影院在线看| 欧美精品一区二区三区蜜桃视频| 成人免费毛片片v| 丝袜国产日韩另类美女| 中文字幕高清不卡| 久久精品综合网| 欧美一区二区三区视频在线观看| 成人晚上爱看视频| 国产一区 二区 三区一级| 午夜视频一区二区| 亚洲一级不卡视频| 亚洲欧美视频在线观看视频| 国产日韩欧美一区二区三区乱码| 欧美自拍偷拍午夜视频| 91色乱码一区二区三区| 成人精品视频网站| 成人av电影免费观看| 成人av午夜电影| www.成人网.com| 99久久精品国产麻豆演员表| 岛国av在线一区| 国产成人av一区二区三区在线| 蜜桃久久精品一区二区| 国产一区二区不卡在线| 国产成人鲁色资源国产91色综 | 国产成人综合在线播放| 国内精品自线一区二区三区视频| 日韩高清一级片| 国产揄拍国内精品对白| 国产在线精品一区二区不卡了| 高清不卡一二三区| 欧美亚日韩国产aⅴ精品中极品| 欧美少妇一区二区| 久久蜜桃av一区二区天堂| 国产精品理论片| 日韩精品乱码免费| 国产91精品精华液一区二区三区| 不卡的av电影在线观看| 欧美福利视频一区| 国产视频在线观看一区二区三区 | 一个色妞综合视频在线观看| 天堂午夜影视日韩欧美一区二区| 国产一区二三区好的| 欧美丝袜自拍制服另类| 中文字幕亚洲一区二区va在线| 亚洲福利视频一区| 91免费观看视频| 国产校园另类小说区| 丝袜诱惑亚洲看片| 欧美中文字幕一二三区视频| 精品国产一区二区三区四区四| 香蕉乱码成人久久天堂爱免费| 国产乱理伦片在线观看夜一区| 91精品午夜视频| 天天综合网 天天综合色| 色偷偷久久人人79超碰人人澡| 国产精品国产a| 91亚洲永久精品| 综合久久久久久久| 91视频在线看| 亚洲一二三专区| 日韩一级片在线播放| 久久av中文字幕片| 精品久久久久久无| 99久久99久久精品免费观看| 最新高清无码专区| 欧美精品久久99| 国产原创一区二区三区| 国产精品国产馆在线真实露脸| 欧美美女bb生活片| 国产在线观看一区二区| 亚洲柠檬福利资源导航| 日韩欧美电影一区| 91亚洲精品乱码久久久久久蜜桃| 亚洲视频资源在线| 欧美mv和日韩mv国产网站| 丰满少妇在线播放bd日韩电影| 亚洲激情五月婷婷| 国产欧美一区二区三区在线看蜜臀 | 日韩av一二三| 久久久久国产精品厨房| 色婷婷综合中文久久一本| 九色|91porny| 亚洲天堂精品视频| 国产欧美一区二区在线| 在线播放/欧美激情| 国产91精品一区二区麻豆亚洲| 一区二区视频免费在线观看| 久久网这里都是精品| 69堂国产成人免费视频| 91麻豆福利精品推荐| 国产成人鲁色资源国产91色综 | 亚洲精品成人悠悠色影视| 国产午夜精品久久| 日韩免费电影一区| 精品久久国产字幕高潮| 日韩视频免费观看高清完整版 | 国产天堂亚洲国产碰碰| 精品国产免费视频| 7777精品伊人久久久大香线蕉最新版| www.色精品| 欧美在线不卡视频| 91麻豆精品国产无毒不卡在线观看 | 欧美男女性生活在线直播观看| 97精品国产97久久久久久久久久久久 | 欧美精品一区二区久久久| 欧美成人免费网站| 欧美国产乱子伦| 亚洲私人影院在线观看| 亚洲一级在线观看| 韩国av一区二区三区四区| 国产成人在线视频网站| 色综合色狠狠天天综合色| 在线观看91视频| 精品成人私密视频| 1区2区3区国产精品| 国产乱人伦偷精品视频不卡 | 国产成人综合在线观看| 色呦呦日韩精品| 精品日产卡一卡二卡麻豆| 国产精品久线观看视频| 亚洲18影院在线观看| 激情六月婷婷久久| 欧美在线免费观看视频| 久久综合狠狠综合久久综合88 | 欧美不卡视频一区| 一区二区三区日本| 国产黄色精品视频| 欧美本精品男人aⅴ天堂| 最新中文字幕一区二区三区| 久久er精品视频| 欧美美女一区二区三区| 亚洲免费看黄网站| 国产成人精品综合在线观看 | 成人免费看黄yyy456| 91精品国产综合久久久久久久| 成人欧美一区二区三区黑人麻豆 | 91久久线看在观草草青青| 国产三级精品三级| 国产自产高清不卡| 国产欧美日本一区视频| 麻豆精品一区二区综合av| 91精品国产91久久久久久一区二区 | 国产一区二区免费在线| 久久影视一区二区| 国产99精品在线观看| 国产精品色眯眯| www.亚洲精品| 亚洲午夜激情av| 日韩欧美国产电影| av在线播放一区二区三区| ●精品国产综合乱码久久久久| 色噜噜久久综合| 亚洲成a人在线观看| 日韩精品一区二区三区四区| 国产裸体歌舞团一区二区| 国产精品久久毛片av大全日韩| 99国产一区二区三精品乱码| 亚洲一级二级在线| 久久久精品天堂| 欧美日韩在线不卡| 国产高清不卡二三区| 亚洲理论在线观看| 精品国精品国产| 欧美日韩一区二区在线观看视频| 久久成人免费网站| 婷婷六月综合亚洲| 亚洲情趣在线观看| 久久久久久久久久久久久女国产乱 | 久久久精品国产免大香伊| 在线欧美一区二区| 波多野结衣一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩一区欧美小说| 久久综合久久久久88| 欧美一区二区三区成人| 色域天天综合网| 欧美性色综合网| 色乱码一区二区三区88| 91日韩在线专区| 国产成人综合亚洲网站| 国内外成人在线| 性久久久久久久久| 亚洲国产精品ⅴa在线观看| 国产很黄免费观看久久| 久久久亚洲精品石原莉奈| 91浏览器入口在线观看| 日韩三区在线观看| 亚洲资源中文字幕|