JDBC編程的學習——MYsql版本

目錄

前言

什么是JDBC????

前置準備

使用JDBC的五個關鍵步驟

1.建立與數據庫的連接

2.創建具體的sql語句和Statement

3.執行SQL語句

4.處理結果集

5.釋放資源

完整流程展示


前言

筆者在先前的博客就提過會寫關于JDBC的內容

[Mysql] 的基礎知識和sql 語句.教你速成(上)——邏輯清晰,涵蓋完整-CSDN博客

作為一個初學者,JDBC很大程度上解決了我之前的困惑——應用程序是怎么和數據庫關聯起來的

在本文中,我以先前分享過的圖書管理系統為例子,來向大家初步介紹如何使用JDBC

圖書管理系統(java) 代碼展示和思路介紹 (9000字小長文)_圖書管理系統關鍵代碼展示-CSDN博客

什么是JDBC????

JDBC ,即 Java Database Connectivity java 數據庫連接。
是一種用于執行 SQL 語句的 Java API ,它是 Java中的數據庫連接規范。
這個 API java.sql.*,javax.sql.* 包中的一些類和接口組成,
它為 Java 開發人員操作數據庫提供了一個標準的API ,可以為多種關系數據庫提供統一訪問。
JDBC提供了一個統一的接口,使得Java應用程序可以與任何支持JDBC標準的關系型數據庫進行交互,無需關心具體的數據庫實現細節。這種平臺無關性使得開發的應用程序可以輕松地在不同的數據庫系統上運行。
話句話說,通過使用JDBC以及它升級過的版本,我們就可以用相對低的知識成本,使JAVA程序連接數據庫
在之前的圖書管理系統中筆者就說過,程序的缺陷就是沒法長期保存數據,一旦程序執行結束,數據就會丟失,因此,我們可以將它寫入我們的MYsql數據庫中,長期保存.

前置準備

1.下載好驅動包

2.創建好項目以后,再創建目錄存放驅動包,并且設置為library

具體操作可以看我另一篇博客

圖文講解IDEA如何導入JDBC驅動包-CSDN博客

使用JDBC的五個關鍵步驟

1.建立與數據庫的連接

在Java中創建一個數據源(DataSource)對象,并實例化為MySQL數據庫的數據源(MysqlDataSource) (向上轉型)

然后設置好 URL? User 和Password? ?

其中關于URL 說明如下:

URL(Uniform Resource Locator,統一資源定位符)是用于標識和定位互聯網上資源的地址。它是一個字符串,描述了資源的位置和訪問方式

URL是互聯網中標準的資源定位方式,用于瀏覽器訪問網頁、下載文件、發送請求等操作。在編程中,通過URL可以指定需要訪問的網絡資源,進行網絡通信和數據傳輸。

同時呢,代碼如下

  DataSource dataSource=new MysqlDataSource();((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jsh?characterEncoding=utf8&useSSL=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("你的數據庫密碼");

關于URL,作為我們自己練習來說,127.0.0.1 是一個回環IP地址 ,3306是我們的端口號, jsh在這代表連接哪個數據庫,基本都是默認的,直接復制即可(除了連接什么數據庫自己定)

然后建立連接

 Connection connection=dataSource.getConnection();

2.創建具體的sql語句和Statement

這里就要考驗你的sql語句是否扎實了

舉例來說

我們要寫一個sql命令,它的數據類型是String

 String sql="insert into lib (name,author,price,type,state)values(?,?,?,?,default)";
default 是默認值,這么什么好說的,你肯定會疑惑?是什么
這里的?是占位符,便于我們在程序中輸入數據以填充
我們以增加圖書這個命令來看,代碼如下
     System.out.println("增加圖書");Scanner scanner=new Scanner(System.in);System.out.println("請輸入您要添加的圖書的書名:");String name = scanner.nextLine();System.out.println("請輸入您要添加的圖書的作者名:");String author = scanner.nextLine();System.out.println("請輸入您要添加的圖書的類型:");String type = scanner.nextLine();System.out.println("請輸入您要添加的圖書的價格:");int price = scanner.nextInt();String sql="insert into lib (name,author,price,type,state)values(?,?,?,?,default)";PreparedStatement preparedStatement=connection.prepareStatement(sql);preparedStatement.setString(1,name);preparedStatement.setString(2,author);preparedStatement.setInt(3,price);preparedStatement.setString(4,type);

在寫好我們的命令以后,創建?PreparedStatement,它的作用是將sql語句傳到數據庫當中,

它也給了我們一組方法,可以手動輸入數據去替換我們的占位符(?)

在方法中,左邊的數字代表問好的位置,右邊的標識符代表我們要替換的數據

3.執行SQL語句

現在,我們已經建立好連接,寫好了命令,現在就需要他執行!

執行也有兩種方法,分別去應用廣義上的寫(包括修改增加刪除)和查詢

 int n=preparedStatement.executeUpdate();

?這里我們以"寫"作為例子去看

    int executeUpdate() throws SQLException;

?可以看到這是一個 int 方法,我們用n去接收,來查看有幾條命令執行了

4.處理結果集

如果是查詢操作,通常會有結果集,但這里我們就不細說了,到時候看案例就知道了

5.釋放資源

順序通常是釋放最后調用的對象

 preparedStatement.close();connection.close();

完整流程展示

這里給大家看個大概的流程

     //1 創建DataSource dataSource=new MysqlDataSource();((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/jsh?characterEncoding=utf8&useSSL=false");((MysqlDataSource)dataSource).setUser("root");((MysqlDataSource)dataSource).setPassword("你的密碼");//2 建立鏈接Connection connection=dataSource.getConnection();//3 創建sql語句System.out.println("增加圖書");Scanner scanner=new Scanner(System.in);System.out.println("請輸入您要添加的圖書的書名:");String name= scanner.nextLine();System.out.println("請輸入您要添加的圖書的作者名:");String author = scanner.nextLine();System.out.println("請輸入您要添加的圖書的類型:");String type = scanner.nextLine();System.out.println("請輸入您要添加的圖書的價格:");int price = scanner.nextInt();String sql="insert into lib (name,author,price,type,state)values(?,?,?,?,default)";PreparedStatement preparedStatement=connection.prepareStatement(sql);preparedStatement.setString(1,name);preparedStatement.setString(2,author);preparedStatement.setInt(3,price);preparedStatement.setString(4,type);//4 發送給服務器int n=preparedStatement.executeUpdate();//5 釋放資源preparedStatement.close();connection.close();

具體案例更新在下篇

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

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

相關文章

R包:reticulate R對python的接口包

介紹1 R和python是兩種不同的編程語言,前者是統計學家發明并且服務數學統計計算,后者則是最萬能的膠水語言。隨著大數據時代的到來,兩者在數據分析領域存在越來越多的共同點且可以相互使用,為了破解二者的編程壁壘,CR…

軟考《信息系統運行管理員》-3.1信息系統設施運維的管理體系

3.1信息系統設施運維的管理體系 1 信息系統設施運維的對象 基礎環境 主要包括信息系統運行環境(機房、設備間、配線室、基站、云計算中心 等)中的空調系統、供配電系統、通信應急設備系統、防護設備系統(如消防系統、安全系統) 等,能維持系統安全正常運轉&#xf…

【第26章】MyBatis-Plus之高級特性

文章目錄 前言一、數據審計(對賬)二、數據敏感詞過濾三、數據范圍(數據權限)四、表結構自動維護五、字段數據綁定(字典回寫)六、虛擬屬性綁定七、字段加密解密八、字段脫敏九、多數據源分庫分表&#xff08…

從零開始學習嵌入式----Linux系統命令集合與shell腳本

Shell是一門編程語言,作為學習shell的開始,需要事先搞明白:編程的目的是什么?什么是編程語言?什么是編程? shell本身就是一門解釋型、弱類型、動態語言,與python相對應,Python屬于解…

aardio —— 今日減bug

打字就減bug 鼠標雙擊也減bug 看看有多少bug夠你減的 使用方法: 1、將資源附件解壓縮,里面的文件夾,放到aardio\plugin\plugins 目錄 2、aardio 啟動插件 → 插件設置 → 選中“今日減bug” → 保存。 3、重啟 aardio,等aa…

旗晟智能巡檢機器人:開啟工業運維的智能化新篇章

在當今快速發展的工業領域,安全、效率和成本控制是企業運營的核心。旗晟科技以創新為驅動,推出了一站式的工業級智能巡檢機器人數字化全景運維解決方案,為石油、天然氣、化工、電力等高危行業提供了一個全新的運維模式。 一、面對挑戰&#x…

提升機器視覺與機器學習軟件安全性的實踐策略

在近幾年科技爆發中,機器學習(ML)和機器視覺(MV)的結合正在改變各行各業。機器學習通過數據驅動的算法讓計算機能夠自我學習,而機器視覺賦予計算機識別和理解圖像的能力。這種結合使得計算機可以高效地執行…

上位機開發關鍵技術

《上位機開發關鍵技術》 在現代工業自動化、智能化的發展進程中,上位機作為人機交互的重要接口,發揮著至關重要的作用。上位機能夠實現對下位機設備的監控、數據采集與處理、控制指令下達等功能,為生產過程的優化、設備的高效運行提供了有力支…

淺談化工廠環保管理的痛點、智慧環保的必要性及EHS系統的實現路徑

在全球環保意識日益增強的背景下,化工廠作為工業領域的重要組成部分,其環保管理顯得尤為重要。然而,化工廠在追求經濟效益的同時,也面臨著諸多環保管理的痛點。本文將圍繞化工廠環保管理的痛點、化工廠為何需要智慧環保以及如何借…

設計分享—國外后臺界面設計賞析

國外后臺界面設計將用戶體驗放在首位,通過直觀易懂的布局和高效的交互設計,提升用戶操作效率和滿意度。 設計不僅追求美觀大方,還注重功能的實用性和數據的有效展示,通過圖表和圖形化手段使數據更加直觀易懂。 采用響應式布局&a…

Global Mapper:地理信息的溫柔探索

引言 在這紛繁復雜的世界里,地理信息系統(GIS)如同一把利器,幫助我們剖析、理解和改造這個世界。而在眾多GIS軟件中,Global Mapper無疑是其中的佼佼者。作為一款功能全面且易于使用的GIS應用程序,Global M…

相機光學(三十一)——暗房設置的要求

ISO標準通常在測試相機時指定對周圍條件的要求。由于攝影ISO組試圖保持這些要求與所有標準一致,所以我們總結了這個“技術說明”中的重要方面。 ??溫度應保持在23C /- 2C的范圍內。在設計空調系統時,請記住圖表照明的耗電量和發熱量。濕度需要在&#…

數字安全護航技術能力全景圖 | 亞信安全實力占據75領域

近日,2024全球數字經濟大會——數字安全生態建設專題論壇在北京成功舉辦。會上,中國信息通信研究院(簡稱“中國信通院”)正式發布了《數字安全護航技術能力全景圖》,亞信安全憑借全面的產品技術能力,成功入…

【網絡安全】SSRF 之 Azure Digital Twins Explorer

未經許可,不得轉載。 文章目錄 正文 正文 Azure Digital Twins 是一個微軟下的平臺服務,允許開發者創建和運行數字孿生模型,這些模型能夠反映物理世界中的實體及其關系,通過這些模型可以進行監控、分析和預測等操作。 1、進入主…

How to Describe Figures in a Research Article

How to Describe Figures in a Research Article DateAuthorVersionNote2024.07.10Dog TaoV1.0Finish the document. 文章目錄 How to Describe Figures in a Research ArticleGeneral GuidelinesDetailed DescriptionsCommon Describing Phrases Effective communication of …

構建機部署之Azure DevOps添加代理機(Linux)

目錄 一、權限檢查二、添加代理機三、更換代理四、刪除并重新配置代理 一、權限檢查 確認用戶具有權限 默認代理池的所有者有添加代理的權限 1)代理池所有者可以生成一個PAT,共享使用。代理不會在日常操作中使用此人憑據,但需要使用有權限的…

【多線程】線程同步--條件變量的原理及其使用

文章目錄 前言線程同步的基本概念條件變量定義條件變量初始化條件變量銷毀條件變量等待條件(重要)喚醒等待簡單運用常見使用條件變量的格式 前言 線程同步意味著在多線程并發執行中,協調線程之間的執行順序,以確保共享資源被正確…

Kylin系列(三)安裝與配置:搭建你的第一個 Kylin 環境

目錄 1. Kylin 簡介 1.1 Kylin的核心特點 1.2 適用場景 2. 環境準備 2.1 硬件要求 2.2 軟件依賴 3. 安裝與配置 3.1 安裝JDK 3.2 安裝Hadoop 3.2.1 下載并解壓Hadoop 3.2.2 配置Hadoop環境變量 3.2.3 配置Hadoop文件 3.2.4 格式化HDFS并啟動Hadoop服務 3.3 安裝H…

hive架構詳解:HQL案例解析(第15天)

系列文章目錄 一、Hive基礎架構(重點) 二、Hive數據庫,表操作(重點) 三、Hadoop架構詳解(hdfs)(補充) 四、Hive環境準備(操作)(補充) 文章目錄 系列文章目錄前言一、Hive基礎架構1、…

4. 小迪安全v2023筆記 javaEE應用

4. 小迪安全v2023筆記 javaEE應用 ? 大體上跟隨小迪安全的課程,本意是記錄自己的學習歷程,不能說是完全原創吧,大家可以關注一下小迪安全。 若有冒犯,麻煩私信移除。 默認有java基礎。 文章目錄 4. 小迪安全v2023筆記 javaEE應…