java_web學習(九) PreparedStatement動態參數的引入


一.PreparedStatement 概述

數據庫的操作過程中,PreparedStatement 對象是一個很不起眼但是記為重要的接口對象,它繼承 於Statement,並與之在兩方面有所不同:

1)PreparedStatement 實例包含已編譯的 SQL 語句。這就是使語句“准備好”。包含於 PreparedStatement 對象中的 SQL 語句可具有一個或多個 IN 參數。IN參數的值在 SQL 語句創建時未被指定。相反的,該語句為每個 IN 參數保留一個問號(“?”)作為占位符。每個問號的值必須在該語句執行之前,通過適當的setXXX 方法來提供。

2)由於 PreparedStatement 對象已預編譯過,所以其執行速度要快於 Statement 對象。因此,多次執行的 SQL 語句經常創建為 PreparedStatement 對象,以提高效率。

 

二.PreparedStatement應用實例

   2.1第一步導入jar包

     

      

     2.2 創建表t1

  

 1 <body>
 2 <%
 3 //加載數據庫驅動給jdbc
 4 Class.forName("org.gjt.mm.mysql.Driver");
 5 out.print("成功加載驅動");
 6 String url ="jdbc:mysql://127.0.0.1:3306/datebase?user=root&password=123456";
 7 //獲取數據庫連接,讓java可以操作mysql
 8 Connection conn = DriverManager.getConnection(url);
 9 //定義一條SQL命令創建一個名為t1的表
10 String sql = "create table t1(sno varchar(20),name varchar(20),birth String)";
11 //從connection對象中,獲取一個sql執行者
12 PreparedStatement ps = conn.prepareStatement(sql);
13 //執行
14 ps.execute();
15 out.print( conn );
16 //首先關閉連接
18 ps.close();
19 conn.close();
20 %>
21 
22 </body>

 

     2.3 對t1表中的數據操作只需要將sql命令替換

<%
String sno="1";
String name="小明";
String birth="2008-08-24";
//加載數據庫驅動給jdbc
Class.forName("org.gjt.mm.mysql.Driver");
out.print("成功加載驅動");
String url ="jdbc:mysql://127.0.0.1:3306/datebase?user=root&password=123456";
//獲取數據庫連接,讓java可以操作mysql
Connection conn = DriverManager.getConnection(url);
//定義一條SQL命令
String sql = "insert into student(sno,name,birth) values(?,?,?)";
//從connection對象中,獲取一個sql執行者
PreparedStatement ps = conn.prepareStatement(sql);
//防止把代碼寫死
ps.setString(
1,sno); ps.setString(2,name); ps.setString(3,birth); //執行 ps.execute(); out.print( conn ); //首先關閉連接 ps.close(); conn.close(); %> </body>

 

 

//增加信息
String sql="insert into t1(sno,name,birth) values(?,?,?)";

//更改信息
String sql1="UPDATE t1 SET birth=? where sno=?";

//刪除信息
String sql2="delete from t1 where sno=?";

 


免責聲明!

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



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