版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
講師:XXX時間:
年
月目錄CONTENTWS01.項目開發(fā)環(huán)境搭建02.學(xué)生成績管理03.學(xué)生基本信息管理04.不同類別學(xué)生信息管理05.學(xué)生基本信息查找與計算目錄CONTENTWS06.使用集合實(shí)現(xiàn)學(xué)生信息管理07.學(xué)生信息管理系統(tǒng)異常處理08.使用文件實(shí)現(xiàn)學(xué)生信息存儲09.使用JDBC實(shí)現(xiàn)學(xué)生信息管理10.圖書管理系統(tǒng)設(shè)計與實(shí)現(xiàn)項目
九
使用JDBC實(shí)現(xiàn)學(xué)生信息管理項目9使用JDBC實(shí)現(xiàn)學(xué)生信息管理任務(wù)一JDBC概述任務(wù)二
數(shù)據(jù)庫編程知識目標(biāo)了解JDBC的概念及主要功能。理解JDBC訪問數(shù)據(jù)庫的機(jī)制。熟悉JDBC常用的類和接口。掌握數(shù)據(jù)庫的基本操作。能力目標(biāo)能夠根據(jù)實(shí)際需求,下載并導(dǎo)入相應(yīng)的JDBC驅(qū)動程序包。能夠使用JDBC連接數(shù)據(jù)庫,并對數(shù)據(jù)庫進(jìn)行查詢、插入、更新和刪除操作。素養(yǎng)目標(biāo)提升團(tuán)隊合作與溝通能力,培養(yǎng)嚴(yán)謹(jǐn)?shù)膶W(xué)習(xí)態(tài)度。增強(qiáng)主動尋求問題解決方法的意識。點(diǎn)擊跳過情境掃碼觀看“使用JDBC實(shí)現(xiàn)學(xué)生信息管理”視頻,討論并回答下列問題問題1:列舉數(shù)據(jù)庫存儲和文件存儲的區(qū)別。在學(xué)生信息管理系統(tǒng)中使用數(shù)據(jù)庫存儲數(shù)據(jù)有哪些優(yōu)點(diǎn)?問題2:如何使用JDBC實(shí)現(xiàn)學(xué)生信息管理?掃碼學(xué)習(xí)使用JDBC實(shí)現(xiàn)學(xué)生信息管理任務(wù)一JDBC概述JDBC定義Java數(shù)據(jù)庫連接(JDBC)是用于執(zhí)行SQL語句的JavaAPI,由類和接口組成,為開發(fā)者提供標(biāo)準(zhǔn)數(shù)據(jù)庫訪問接口。JDBC的主要功能(1)建立數(shù)據(jù)庫連接。(2)執(zhí)行SQL語句。(3)處理數(shù)據(jù)庫返回結(jié)果。JDBC核心組件
包含開發(fā)者API與驅(qū)動API,前者供Java程序調(diào)用,后者管理底層數(shù)據(jù)庫連接,實(shí)現(xiàn)跨數(shù)據(jù)庫兼容性。訪問流程解析Java程序通過JDBCAPI連接驅(qū)動管理器,管理器再經(jīng)驅(qū)動API調(diào)用對應(yīng)數(shù)據(jù)庫驅(qū)動,完成數(shù)據(jù)交互操作。。JDBC訪問數(shù)據(jù)庫的機(jī)制ODBC
ODBC(opendatabaseconnectivity,開放數(shù)據(jù)庫互聯(lián))是
Microsoft
提供的用于訪問數(shù)據(jù)庫的應(yīng)用程序接口。它采用
SQL
語言執(zhí)行查詢、插入、更新和刪除等數(shù)據(jù)庫操作
。JDBC
和
ODBC
的主要區(qū)別在于:JDBC
是專為
Java
設(shè)計的數(shù)據(jù)庫連接接口,與平臺無關(guān),能在任何支持
Java
的系統(tǒng)上運(yùn)行
ODBC
是通用的數(shù)據(jù)庫連接接口,支持多平臺、多語言,但需要安裝特定驅(qū)動程序,因此平臺兼容性較差。12實(shí)施流程下載MySQLJDBC驅(qū)動程序包導(dǎo)入MySQLJDBC驅(qū)動程序包掃碼學(xué)習(xí)下載和導(dǎo)入MySQLJDBC驅(qū)動程序包JDBC概述JDBC簡介JDBC訪問數(shù)據(jù)庫的機(jī)制任務(wù)二數(shù)據(jù)庫編程驅(qū)動管理機(jī)制DriverManager類用于加載與注冊數(shù)據(jù)庫驅(qū)動程序,通過統(tǒng)一接口實(shí)現(xiàn)數(shù)據(jù)庫連接管理,支持多種數(shù)據(jù)源操作。版本優(yōu)化特性Java6及后續(xù)版本優(yōu)化驅(qū)動加載流程,自動完成驅(qū)動注冊過程,開發(fā)者無需手動調(diào)用注冊方法即可建立連接。1.DriverManager類語法格式getConnection(Stringurl[,Stringuser,Stringpassword])DriverManager
類提供了
getConnection()方法,用于與指定數(shù)據(jù)庫建立連接,并返回一個Connection對象。其中,url
表示數(shù)據(jù)庫的
URL,user
表示數(shù)據(jù)庫的用戶名,password
表示數(shù)據(jù)庫的密碼。連接本地的數(shù)據(jù)庫student_sql,可以使用以下代碼實(shí)現(xiàn)DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/student_sql","root","123456");示例127.0.0.1是本地MySQL服務(wù)器地址,3306是MySQL默認(rèn)端口號。2.Connection接口方
法返回值類型說
明createStatement()Statement創(chuàng)建Statement對象prepareStatement(Stringsql)PreparedStatement創(chuàng)建PreparedStatement對象close()void關(guān)閉當(dāng)前連接并釋放相關(guān)資源
Connection接口提供的常用方法Connection接口用于表示和管理指定數(shù)據(jù)庫的連接。功能特點(diǎn)
Statement
接口用于執(zhí)行靜態(tài)
SQL
語句(在編譯時結(jié)構(gòu)和內(nèi)容就已經(jīng)確定的
SQL
語句)。3.Statement接口方
法返回值類型說
明execute(Stringsql)boolean執(zhí)行
SQL
語句。如果執(zhí)行查詢語句,則返回true,可通過
getResultSet()方法獲取結(jié)果集(ResultSet
對象);否則返回
false,可通過getUpdateCount()方法獲取執(zhí)行操作的記錄數(shù)executeQuery(Stringsql)ResultSet執(zhí)行SQL查詢語句executeUpdate(Stringsql)int執(zhí)行
SQL
插入、更新或刪除等語句,返回執(zhí)行操作的記錄數(shù)close()void關(guān)閉Statement對象并釋放相關(guān)資源Statement接口提供的常用方法查詢students表中age為18的所有記錄,可以使用以下代碼實(shí)現(xiàn)。//創(chuàng)建Statement對象st,con為Connection對象Statementst=con.createStatement();//執(zhí)行SQL查詢語句st.executeQuery("SELECT*FROMstudentsWHEREage=18");示例作用
預(yù)編譯動態(tài)SQL,提升執(zhí)行效率,防SQL注入。場景多次執(zhí)行帶參數(shù)SQL,如查詢、更新操作。4.PreparedStatement接口SQL
SQL
注入攻擊是一種利用應(yīng)用程序存在的安全漏洞,在輸入中插入惡意
SQL
代碼的攻擊方式,從而篡改或竊取數(shù)據(jù)庫中的敏感信息。PreparedStatement接口的優(yōu)勢PreparedStatement優(yōu)勢通過預(yù)編譯SQL語句,提升執(zhí)行效率,增強(qiáng)安全性,避免SQL注入攻擊。參數(shù)設(shè)置方法
提供多樣化參數(shù)設(shè)置方法,支持在執(zhí)行預(yù)編譯SQL語句時動態(tài)傳入?yún)?shù)值,增加靈活性。方
法返回值類型說
明setInt(intindex,intk)void將指定位置index的參數(shù)設(shè)置為int型值setLong(intindex,longl)void將指定位置index的參數(shù)設(shè)置為long型值setFloat(intindex,floatf)void將指定位置index的參數(shù)設(shè)置為float型值setDouble(intindex,doubled)void將指定位置index的參數(shù)設(shè)置為double型值setBoolean(intindex,booleanb)void將指定位置index的參數(shù)設(shè)置為boolean型值setDate(intindex,Datedate)void將指定位置index的參數(shù)設(shè)置為Date型值setString(intindex,Strings)void將指定位置index的參數(shù)設(shè)置為String型值setNull(intindex,intsqlType)void將指定位置index的參數(shù)設(shè)置為SQL的null值PreparedStatement接口提供的常用方法所有方法的
index
參數(shù)均從
1
開始。此外,預(yù)編譯
SQL
語句時,可使用通配符“?”來代替任何字段值,隨后在執(zhí)行預(yù)編譯
SQL
語句前,須使用相應(yīng)的
setXxx()方法設(shè)置通配符的值。查詢
students
表中
sex
為男且
age
為
18
的所有記錄,可以使用以下代碼實(shí)現(xiàn)。//創(chuàng)建PreparedStatement對象ps,con為Connection對象PreparedStatementps=con.prepareStatement("SELECT*FROMstudentsWHEREsex=?ANDage=?");ps.setString(1,"男"); //設(shè)置第1個通配符的值ps.setInt(2,18); //設(shè)置第2個通配符的值ps.executeQuery(); //執(zhí)行SQL查詢語句示例1
和
2
表示
SQL
語句中通配符的位置(從左向右)。如果要修改查詢條件,只需重新設(shè)置通配符的值。也就是說,PreparedStatement
對象只用創(chuàng)建一次,就可使用它多次執(zhí)行
SQL
語句,這樣可以減輕數(shù)據(jù)庫中
SQL
解釋器的負(fù)擔(dān),提升
SQL
語句的執(zhí)行效率。5.ResultSet接口ResultSet接口功能
用于存儲查詢操作返回的結(jié)果集,提供遍歷與處理數(shù)據(jù)的方法,支持?jǐn)?shù)據(jù)庫查詢結(jié)果的結(jié)構(gòu)化訪問。游標(biāo)初始狀態(tài)
內(nèi)置游標(biāo)標(biāo)記當(dāng)前操作行,默認(rèn)位于結(jié)果集首行之前,通過方法調(diào)節(jié)能實(shí)現(xiàn)向上或向下移動。方
法返回值類型說
明previous()boolean將游標(biāo)移到結(jié)果集的前一行next()boolean將游標(biāo)移到結(jié)果集的下一行first()boolean將游標(biāo)移到結(jié)果集的第一行l(wèi)ast()boolean將游標(biāo)移到結(jié)果集的最后一行absolute(intindex)boolean將游標(biāo)移到結(jié)果集指定序號index的行g(shù)etInt(Stringcolname)int獲取結(jié)果集當(dāng)前行指定字段colname的int型值getLong(Stringcolname)long獲取結(jié)果集當(dāng)前行指定字段colname的long型值getFloat(Stringcolname)float獲取結(jié)果集當(dāng)前行指定字段colname的float型值getDouble(Stringcolname)double獲取結(jié)果集當(dāng)前行指定字段colname的double型值getBoolean(Stringcolname)boolean獲取結(jié)果集當(dāng)前行指定字段colname的boolean型值getDate(Stringcolname)Date獲取結(jié)果集當(dāng)前行指定字段colname的Date型值getString(Stringcolname)String獲取結(jié)果集當(dāng)前行指定字段colname的String型值close()void關(guān)閉ResultSet對象并釋放相關(guān)資源
ResultSet接口提供的常用方法1.查詢記錄字段名表示要查詢的列名,如果不指定字段名,用“*”代替,則查詢所有字段信息;表名表示數(shù)據(jù)庫中表的名稱;條件用于篩選滿足條件的記錄,如果不指定條件,則查詢表中的所有記錄,如果有多個條件,條件之間用“AND”連接。SELECT字段名1,字段名2,……FROM表名[WHERE條件]查詢數(shù)據(jù)庫中表的記錄的SQL語句的語法格式2.插入記錄字段名和值須一一對應(yīng)。如果不指定字段名,值列表須按順序給出表中所有字段的值。執(zhí)行SQL插入語句可使用Statement接口或PreparedStatement接口的executeUpdate()方法實(shí)現(xiàn)。INSERTINTO表名[(字段名1,字段名2,……)]VALUES(值1,值2,……)向數(shù)據(jù)庫的表中插入一行記錄的SQL語句的語法格式3.更新記錄如果不指定條件,則更新表中的所有記錄。執(zhí)行
SQL
更新語句可使用
Statement
接口或
PreparedStatement
接口的
executeUpdate()方法實(shí)現(xiàn)。UPDATE表名SET字段名1=值1,字段名2=值2,……[WHERE條件]更新數(shù)據(jù)庫中表的一行記錄的SQL語句的語法格式4.刪除記錄如果不指定條件,則刪除表中的所有記錄。執(zhí)行
SQL
刪除語句可使用
Statement
接口或PreparedStatement接口的executeUpdate()方法實(shí)現(xiàn)。DELETEFROM表名[WHERE條件]刪除數(shù)據(jù)庫中表的記錄的
SQL
語句的語法格式實(shí)例:9-1
使用Statement接口實(shí)現(xiàn)插入、查詢、更新和刪除products表中的記錄【問題分析】
使用
Java
數(shù)據(jù)庫編程前,須先下載并安裝MySQL
數(shù)據(jù)庫,以及創(chuàng)建數(shù)據(jù)庫和表。此處已經(jīng)安裝了MySQL
數(shù)據(jù)庫,用戶名為root,密碼為
123456,并創(chuàng)建了數(shù)據(jù)庫product_mysql
及商品表
products,其中
products
表包括
id(商品
ID)、name(商品名稱)、price(商品價格)和
stock(商品庫存)字段。本任務(wù)的實(shí)例都基于product_mysql數(shù)據(jù)庫和products表完成。掃碼學(xué)習(xí)下載并安裝MySQL和創(chuàng)建數(shù)據(jù)庫及表實(shí)例:9-1
使用Statement接口實(shí)現(xiàn)插入、查詢、更新和刪除products表中的記錄【問題分析】
定義ProductManage類,在類中定義printInfo()方法,在方法中通過ResultSet對象res調(diào)用next()方法循環(huán)將游標(biāo)移到結(jié)果集的下一行,以及調(diào)用getXxx()方法獲取每行記錄指定字段的值,并輸出查詢的商品信息。在main()方法中首先連接product_mysql數(shù)據(jù)庫,然后通過Connection對象con調(diào)用createStatement()方法創(chuàng)建Statement對象st,最后通過st調(diào)用executeUpdate()方法執(zhí)行SQL插入、更新和刪除語句,以及調(diào)用executeQuery()方法執(zhí)行SQL查詢語句,將返回的結(jié)果集賦值給res,并調(diào)用printInfo()方法顯示查詢的商品信息。?!緟⒖即a】/*ProductManage.java*/package
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幾何簡約實(shí)景高級服裝銷售模板
- 漳州市第四醫(yī)院2025年招聘臨時工作人員備考題庫及完整答案詳解1套
- 2025年浦城縣醫(yī)療單位醫(yī)療類儲備人才引進(jìn)備考題庫含答案詳解
- 2025年庫爾勒市國有資產(chǎn)經(jīng)營有限公司所屬子公司招聘6人備考題庫及答案詳解1套
- 2025年皖北煤電集團(tuán)公司掘進(jìn)工招聘備考題庫及一套答案詳解
- 讀書分享《教育從看見孩子開始》課件-小學(xué)生主題班會
- 2025年資陽現(xiàn)代農(nóng)業(yè)發(fā)展集團(tuán)有限公司第三輪一般員工市場化招聘備考題庫及答案詳解一套
- 圍棋段位布局試題及答案
- 2025年墊江縣少年宮乒乓球教師招聘備考題庫及1套參考答案詳解
- 杭州市臨安區(qū)衛(wèi)健系統(tǒng)2026年公開招聘高層次、緊缺專業(yè)技術(shù)人才備考題庫完整答案詳解
- 制造業(yè)數(shù)字化轉(zhuǎn)型公共服務(wù)平臺可行性研究報告
- 氫能與燃料電池技術(shù) 課件 5-燃料電池
- DG-TJ08-2011-2007 鋼結(jié)構(gòu)檢測與鑒定技術(shù)規(guī)程
- 【課件】臺灣的社區(qū)總體營造
- 重慶市兩江新區(qū)2023-2024學(xué)年五年級上學(xué)期英語期末試卷
- BGO晶體、LYSO晶體、碲鋅鎘晶體項目可行性研究報告寫作模板-備案審批
- 昆明理工大學(xué)《機(jī)器學(xué)習(xí)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2023版國開電大本科《高級財務(wù)會計》在線形考(任務(wù)一至四)試題及答案
- 難治性類風(fēng)濕關(guān)節(jié)炎的診治進(jìn)展
- 城鎮(zhèn)職工醫(yī)療保險
- 煤礦用履帶式液壓鉆機(jī)ZDY2300LX說明書-圖文
評論
0/150
提交評論