MySQL——statement對象詳解

JDBC中的statement對象用于向數據庫發送SQL語句,想完成對數據庫的增刪改查,只需要通過這個對象向數據庫發送增刪改查語句即可。

Statement對象的executeUpdate方法,用于向數據庫發送增、刪、改的sql語句,executeUpdate執行完成后,將會返回一個整數(即增刪改語句導致了數據庫幾行數據發生了變化)。

Statement.executeQuery方法用于向數據庫發送查詢語句,executeQuery方法返回代表查詢結果的ResultSet對象。

CRUD操作-create

?使用executeUpdate(String sql)方法完成數據添加操作,示例操作:

Statement st = conn.createStatement();
String sql = "insert into user(... .) values(... . .)"
int num = st.executeUpdate(sql);
if(num > 0){System.out.println("插入成功!");
}

CRUD操作-delete

?使用executeUpdate(String sql)方法完成數據刪除操作,示例操作:

Statement st = conn.createStatement();
String sql = "delete from user where id=1"
int num = st.executeUpdate(sql);
if(num > 0){System.out.println("刪除成功!");
}

CRUD操作-update

?使用executeUpdate(String sql)方法完成數據修改操作,示例操作:

Statement st = conn.createStatement();
String sql = "update user set name='' where name=''"
int num = st.executeUpdate(sql);
if(num > 0){System.out.println("修改成功!");
}

CRUD操作-read

使用executeQuery(String sql)方法完成數據查詢操作,示例操作:

Statement st = conn.createStatement();
String sql = "select * from user where id=1"
ResultSet rs = st.executeQuery(sql);
while(rs.next()){// 根據獲取列的數據類型,分別調用rs的相應方法映射到java對象中
}

代碼實現

1. 提取工具類

public class jdbcUtils {private static String driver = null;private static String url = null;private static String username = null;private static String password = null;static {try {InputStream in = jdbcUtils.class.getClassLoader().getResourceAsStream("db.properties");// 獲取具體資源Properties properties = new Properties();properties.load(in);driver = properties.getProperty("driver");url = properties.getProperty("url");username = properties.getProperty("username");password = properties.getProperty("password");// 1.驅動只用加載一次Class.forName(driver);} catch (IOException | ClassNotFoundException e) {throw new RuntimeException(e);}}// 獲取連接public  static Connection  getConnection() throws SQLException {return DriverManager.getConnection(url,username,password);}// 釋放連接資源public static void release(Connection conn, Statement stmt, ResultSet rs) throws SQLException {if (rs!=null){rs.close();}if (stmt!=null){stmt.close();}if (conn!=null){conn.close();}}}

2. 編寫增刪改的方法,executeUpdate

增:

public class TestInsert {public static void main(String[] args) throws SQLException {Connection conn = null;Statement st = null;ResultSet rs = null;try {conn = jdbcUtils.getConnection();  // 獲取數據庫連接st = conn.createStatement();  // 獲得SQL的執行對象String sql = "INSERT INTO users(id,`NAME`,`PASSWORD`,`email`,`birthday`)" +"VALUES(4,'chenyang','123456','888@qq.com','2024-7-5')";int i = st.executeUpdate(sql);if (i>0){System.out.println("插入成功!");}} catch (SQLException e) {throw new RuntimeException(e);}finally {jdbcUtils.release(conn,st,rs);}}
}

刪:

public class TestDelete {public static void main(String[] args) throws SQLException {Connection conn = null;Statement st = null;ResultSet rs = null;try {conn = jdbcUtils.getConnection();st = conn.createStatement();String sql = "DELETE FROM users WHERE id=4";int i = st.executeUpdate(sql);if (i>0){System.out.println("刪除成功!");}} catch (SQLException e) {throw new RuntimeException(e);}finally {jdbcUtils.release(conn,st,rs);}}

改:

public class TestUpdate {public static void main(String[] args) throws SQLException {Connection conn = null;Statement st = null;ResultSet rs = null;try {conn = jdbcUtils.getConnection();st = conn.createStatement();String sql = "UPDATE users SET `NAME`='chenyang8' WHERE id=4";int i = st.executeUpdate(sql);if (i>0){System.out.println("修改成功!");}} catch (SQLException e) {throw new RuntimeException(e);}finally {jdbcUtils.release(conn,st,rs);}}
}

3. 查詢,executeQuery?

public class TestSelect {public static void main(String[] args) throws SQLException {Connection conn = null;Statement st = null;ResultSet rs = null;try {conn = jdbcUtils.getConnection();st = conn.createStatement();//SQlString sql = "select * from users where id = 1";rs = st.executeQuery(sql);  //查詢完畢會返回一個結果集if (rs.next()){System.out.println(rs.getString("NAME"));}} catch (SQLException e) {throw new RuntimeException(e);}finally {jdbcUtils.release(conn,st,rs);}}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/41391.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/41391.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/41391.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vue前端打包

關于NGINX 介紹:Nginx是一款輕量級的Web服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。其特點是占有內存少,并發能力強,在各大型互聯網公司都有非常廣泛的使用。 NGiMx 官網:https://nginx.org/ conf 配置文件目錄 html靜態資源文件目錄 lo…

華為OD面試分享18

2024年OD統一考試(D卷)完整題庫:華為OD機試2024年最新題庫(Python、JAVA、C++合集) 正文開始 7月3日上午一面 問項目 String變量直接引用和new一個String變量的區別 談談多線程 canel的工作原理 MVC的執行過程 redis怎么用的 編程題-網絡連通區域數量 7月3日晚上二面 編程…

html+js+css在線倒計時

代碼在圖片后面 點贊加關注 謝謝大佬照顧&#x1f61c; 圖例 時間到前 時間到后 源代碼 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width,…

10.09面試題目記錄

艾融軟件 - 線上面試題 排序算法的時間復雜度 O(n^2&#xff09;&#xff1a;冒泡&#xff0c;選擇&#xff0c;插入 O(logn&#xff09;&#xff1a;折半插入排序 O(nlogn)&#xff1a;希爾&#xff0c;歸并&#xff0c;快速&#xff0c;堆 O(nk)&#xff1a;桶&#xff0c;…

ListView 的簡單使用及 ArrayAdapter 中參數詳解

&#x1f604;作者簡介&#xff1a; 小曾同學.com,一個致力于測試開發的博主??&#xff0c;主要職責&#xff1a;測試開發、CI/CD&#xff0c;日常還會涉及Android開發工作。 如果文章知識點有錯誤的地方&#xff0c;還請大家指正&#xff0c;讓我們一起學習&#xff0c;一起…

【ARMv8/v9 GIC 系列 5.2 -- GIC 分組介紹:Group 0 |Group 1| Non-Secure Group 1】

請閱讀【ARM GICv3/v4 實戰學習 】 文章目錄 GIC Interrupt grouping中斷分組配置寄存器GIC 中斷分組介紹Group 0(安全組0)Group 1(安全組1)Non-Secure Group 1(非安全組1)總結及例子GIC Interrupt grouping ARM GICv3 通過中斷分組機制,與ARMv8異常模型和安全模型進行…

一文讓你徹底搞懂什么是CDN

一、引言 在當今互聯網時代&#xff0c;網站的加載速度和穩定性是用戶體驗的關鍵因素之一。而CDN&#xff08;Content Delivery Network&#xff0c;內容分發網絡&#xff09;作為提升網站性能的重要技術手段&#xff0c;受到了廣泛的關注和應用。本篇博客將深入探討CDN的工作…

實現原理:遠程過程調用(RPC)

Hi~&#xff01;這里是奮斗的小羊&#xff0c;很榮幸您能閱讀我的文章&#xff0c;誠請評論指點&#xff0c;歡迎歡迎 ~~ &#x1f4a5;&#x1f4a5;個人主頁&#xff1a;奮斗的小羊 &#x1f4a5;&#x1f4a5;所屬專欄&#xff1a;C語言 &#x1f680;本系列文章為個人學習…

墨烯的C語言技術棧-C語言基礎-006

六.常量 C語言的常量為 字面常量 const修飾的常變量 #define定義的 枚舉常量 int main() { // 四個都是字面常量 30; 3.14; "w"; // 字符常量 "abc"; // const修飾的常變量 const int a 10; // 在C語言中,const修飾的a,本質是變量,但不能直…

圖像的灰度直方圖

先來認識一下灰度直方圖&#xff0c;灰度直方圖是圖像灰度級的函數&#xff0c;用來描述每個灰度級在圖像矩陣中的像素個數或者占有率。接下來使用程序實現直方圖&#xff1a; 首先導入所需的程序包&#xff1a; In [ ]: import cv2 import numpy as np import matplotlib…

PCA算法降維代碼示例

這段代碼將數據進行PCA降維至3維&#xff0c;并繪制一個三維散點圖&#xff0c;展示降維后的前3個主成分。 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.decomposition import PCA from sklearn.preprocessing import StandardS…

JAVA 發送短信信息工具類(騰訊云)

發送短信信息工具類 import cn.hutool.core.collection.CollUtil; import com.tencentcloudapi.common.Credential; import com.tencentcloudapi.common.exception.TencentCloudSDKException; import com.tencentcloudapi.sms.v20210111.SmsClient; import com.tencentcloudapi…

pyecharts可視化案例大全(21~30)

pyecharts可視化案例大全(21~30) 二十一、直方圖帶標記線(最大值,平均值等)二十二、折線圖帶自定義標記點二十三、折線圖帶百分號顯示二十四、象形圖自定義圖形二十五、水球圖自定義圖形二十六、GEO添加自定義坐標二十七、GEO 帶漣漪效果散點圖二十八、GEO熱力圖二十九、GEO…

關于一致性哈希

什么是一致性哈希&#xff1f; 定義和基本原理 一致性哈希&#xff08;Consistent Hashing&#xff09;是一種哈希算法&#xff0c;廣泛應用于分布式系統中&#xff0c;主要用于解決動態節點變化&#xff08;如節點增加或減少&#xff09;時的數據分布和負載均衡問題。 定義…

基于Java中的SSM框架實現野生動物公益保護系統項目【項目源碼+論文說明】計算機畢業設計

基于Java中的SSM框架實現野生動物公益保護系統演示 摘要 本系統按照網站系統設計的基本流程&#xff0c;遵循系統開發生命周期法和結構化方法&#xff0c;基于Java語言設計并實現了野生動物公益保護系統。該系統基于瀏覽器/服務器模式&#xff0c;采用JSP技術&#xff0c;后臺…

MySQL之備份與恢復(六)

備份與恢復 文件系統快照 先決條件和配置 創建一個快照的消耗幾乎微不足道&#xff0c;但還是需要確保系統配置可以讓你獲取在備份瞬間的所有需要的文件的一致性副本。首先&#xff0c;確保系統滿足下面這些條件。 1.所有的InnoDB文件(InnoDB的表空間文件和InnoDB的事務日志…

C++學習第十三天——stack/queue的使用及底層剖析雙端隊列容器適配器

? 少年的旅途應是星辰大海 &#x1f30f; &#x1f4c3;個人主頁&#xff1a;island1314 &#x1f525;個人專欄&#xff1a;C學習 &#x1f680; 歡迎關注&#xff1a;&#x1f44d;點贊 &#x1f442;&am…

學會python——用python制作一個繪圖板(python實例十九)

目錄 1.認識Python 2.環境與工具 2.1 python環境 2.2 Visual Studio Code編譯 3.制作一個繪圖板 3.1 代碼構思 3.2 代碼實例 3.3 運行結果 4.總結 1.認識Python Python 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。 Python 的設計具有很強的可…

昇思25天學習打卡營第12天| 基于MindNLP+MusicGen生成自己的個性化音樂

之前都是看圖文類的東西&#xff0c;今天體驗一點不一樣的。來點聽力的內容。 mindspore有音樂生成模型MusicGen&#xff0c;MusicGen支持兩種生成模式&#xff1a;貪心&#xff08;greedy&#xff09;和采樣&#xff08;sampling&#xff09;。在實際執行過程中&#xff0c;采…

京東金融大數據分析平臺總體架構:剖析和解讀

京東金融大數據分析平臺總體架構&#xff1a;剖析和解讀 在現代金融行業中&#xff0c;大數據分析已成為決策支持和業務創新的重要工具。京東金融憑借其強大的大數據分析平臺&#xff0c;成功地將海量數據轉化為洞察力&#xff0c;為企業和用戶提供優質服務。本文將深入探討京…