淺析JDBC常用的接口——JDBC的Statement接口、PreparedStatement接口
大家好,我是Java進階者。今天給大家繼續分享JDBC技術。
一、前言
在《淺析JDBC常用的類和接口——JDBC的Driver接口、DriverManager類、Connection接口》文章中,我們介紹了使用Java語言來連接數據庫。本文主要給大家介紹在Java中,通過連接數據庫之后,如何來執行SQL的語句,接下來小編帶大家一起來學習!
二、Statement接口
1.Statement接口是用于執行不帶參數的比較簡單SQL的語句。Statement對象是由Connection對象方法createStatement()創建,該對象會把SQL語句傳遞給數據庫執行,然后返回數據庫處理的結果。
2.Statement常用的方法
常用的方法: |
---|
1)boolean execute(String sql):執行給定的SQL語句。 |
2)ResultSet executeQuery(String sql):執行給定的SQL查詢語句。 |
3)int executeUpdate(String sql):執行數據更新SQL語句。 |
4)Connection getConnection():獲取數據庫的連接。 |
5)int getMaxRows():獲取最大行數。 |
6)ResultSet getResultSet():獲取ResultSet對象。 |
7)void close():立即釋放連接和JDBC資源。 |
三、通過一個案例了解Statement接口的用法
1.首先導入拓展包“mysql-connector-java-5.1.7-bin.jar”,在Ecilpse編輯軟件的當前項目右鍵選擇“Bulid Path”,再選擇“Configure Build Path...”,選擇Libraies,在右邊有個“Add External JARs...”按鈕把這個拓展包加進來,然后點擊“OK”。具體操作如下圖所示:
2.在上面介紹了Statement接口的基礎知識點,接下來,小編通過一個案例帶大家一起了解Statement接口的用法,代碼如下所示:
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- import java.sql.Statement;
- public class Example26 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- String driver="com.mysql.jdbc.Driver";
- try {
- //加載驅動
- Class.forName(driver);
- //數據庫地址,本機、端口號3306、數據庫名為test
- String url="jdbc:mysql://localhost:3306/test";
- //用戶名
- String user="root";
- //密碼
- String pwd="168168";
- //連接數據庫
- Connection conn=DriverManager.getConnection(url,user,pwd);
- //創建Statement對象
- Statement stmt=conn.createStatement();
- String sql="select * from student";
- //執行SQL語句
- stmt.executeQuery(sql);
- System.out.println(stmt);
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
效果圖如下所示:
在上面代碼中,首先是加載驅動程序,之后,進行Mysql數據庫的連接,創建Statement對象,使用executeQuery()方法執行SQL語句。
四、PreparedStatement接口
1.PreparedStatement接口是用于預執行SQL語句的對象。SQL語句預編譯存儲在PreparedStatement對象中,可以使用PreparedStatement對象多次高效執行SQL語句。
2.PreparedStatement常用的方法
常用的方法: |
---|
1)void addBatch():將一組參數添加到此 PreparedStatement 對象的批處理命令中。 |
2)void setDouble(int parameterIndex, double x):將指定參數設置為給定 Java double 值。 |
3)void setFloat(int parameterIndex, float x):將指定參數設置為給定 Java REAL 值。 |
4)void setInt(int parameterIndex, int x):將指定參數設置為給定 Java int 值。 |
5)void setLong(int parameterIndex, long x):將指定參數設置為給定 Java long 值。 |
6)void setString(int parameterIndex, String x):將指定參數設置為給定 Java String 值。 |
7)void setObject(int parameterIndex, Object x):使用給定對象設置指定參數的值 |
8)boolean execute():在此 PreparedStatement 對象中執行 SQL 語句,該語句可以是任何種類的 SQL 語句。 |
9)ResultSet executeQuery():在此 PreparedStatement 對象中執行 SQL 查詢,并返回該查詢生成的 ResultSet 對象。 |
10)int executeUpdate():在此 PreparedStatement 對象中執行 SQL 語句,該語句必須是一個 SQL 數據操作語言(Data Manipulation Language,DML)語句,比如 INSERT、UPDATE 或 DELETE 語句;或者是無返回內容的 SQL 語句,比如 DDL 語句。 |
上述方法引用自文檔《JavaTM Platform Standard Ed. 6》
五、通過一個案例了解PreparedStatement接口的用法
1.首先導入拓展包“mysql-connector-java-5.1.7-bin.jar”,在Ecilpse編輯軟件的當前項目右鍵選擇“Bulid Path”,再選擇“Configure Build Path...”,選擇Libraies,在右邊有個“Add External JARs...”按鈕把這個拓展包加進來,然后點擊“OK”。具體操作的圖片在上面。
2.在上面介紹了PreparedStatement接口的基礎知識點,接下來,小編通過一個案例帶大家一起了解PreparedStatement接口的用法,代碼如下所示:
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.SQLException;
- public class Example25 {
- public static void main(String[] args) {
- //定義一個字符串來保存com.mysql.jdbc的Driver類路徑
- String driver="com.mysql.jdbc.Driver";
- try {
- //加載驅動
- Class.forName(driver);
- //數據庫地址,本機、端口號3306、數據庫名為test
- String url="jdbc:mysql://localhost:3306/test";
- //用戶名
- String user="root";
- //密碼
- String pwd="168168";
- //連接數據庫
- Connection conn=DriverManager.getConnection(url,user,pwd);
- //創建PreparedStatement對象
- PreparedStatement pst=conn.prepareStatement("select * from student where id=?");
- String id="A11";
- pst.setString(1,id);
- System.out.println(pst);
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
效果圖如下所示:
在上面代碼中,首先是加載驅動程序,之后進行Mysql數據庫的連接,創建PreparedStatement對象包含了"select * from student where id=?",它發送給數據庫管理系統,并且為執行做了準備。
六、總結
1.本文介紹了JDBC的Statement和PreparedStatement接口。
2.Statement接口是用于執行不帶參數的比較簡單SQL的語句。Statement對象是由Connection對象方法createStatement()創建,該對象會把SQL語句傳遞給數據庫執行,然后返回數據庫處理的結果。文中介紹了它的常用方法的使用,并通過一個案例來幫助大家了解Statement接口的用法。
3.PreparedStatement接口是用于預執行SQL語句的對象。SQL語句預編譯存儲在PreparedStatement對象中,可以使用PreparedStatement對象多次高效執行SQL語句。文中介紹了它的常用方法的使用,并通過一個案例來幫助大家了解PreparedStatement接口的用法。
本文轉載自微信公眾號「Java進階學習交流」,可以通過以下二維碼關注。轉載本文請聯系Java進階學習交流公眾號。