版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基礎知識簡介數據庫管理系統(tǒng)(DatabaseManagementSystem)是一種操縱和管理數據庫的大型軟件,是用于建立、使用和維護數據庫,簡稱DBMS。用途:科學地組織和存儲數據;高效地獲取和維護數據。常見的數據庫管理系統(tǒng):
MicrosoftAccessOracleMicrosoftSQLServerVisualFoxPro;沒有DBMS之前有了DBMS之后基礎知識簡介SQL語言:“結構化查詢語言”StructuredQueryLanguageSQL語言的由來:最早的是IBM的圣約瑟研究實驗室為其關系數據庫管理系統(tǒng)SYSTEMR開發(fā)的一種查詢語言,它的前身是SQUARE語言。SQL語言的優(yōu)點:結構簡潔,功能強大,簡單易學。SQL語言的地位:在關系型數據庫中的地位猶如英語在世界上的地位,它是數據庫系統(tǒng)的通用語言。利用SQL語言,用戶可以用幾乎同樣的語句在不同的數據庫管理系統(tǒng)上執(zhí)行同樣的操作。SQL已經被ANSI(美國國家標準化組織)確定為數據庫系統(tǒng)的工業(yè)標準。
基礎知識簡介什么是ODBC?開放數據庫互連(OpenDatabaseConnectivity)微軟開放服務結構中有關數據庫的一個組成部分ODBC有什么作用?建立了一組規(guī)范提供了一組對數據庫訪問的標準APIAPI:應用程序編程接口ODBC本身提供了對SQL語言的支持:用戶可以直接將SQL語句送給ODBC?;A知識簡介ODBC的最大優(yōu)點:能以統(tǒng)一的方式處理所有的數據庫。不依賴任何DBMS,不直接與DBMS打交道,所有的數據庫操作由對應DBMS的ODBC驅動程序完成;不論是FoxPro、Access、MYSQL還是Oracle數據庫,均可用ODBCAPI進行訪問?;A知識簡介ODBC管理器的使用:首先必須用ODBC管理器注冊一個數據源。數據源中包含數據庫位置、數據庫類型及ODBC驅動程序等信息。然后ODBC管理器根據上述信息,自動建立起ODBC與具體數據庫的聯(lián)系。只要應用程序將數據源名提供給ODBC,ODBC就能建立起與相應數據庫的連接。JDBC簡介什么是JDBC?Java數據庫連接(JavaDataBaseConnectivity)Sun公司開發(fā)的一種用于執(zhí)行SQL語句的JavaAPI由一組用Java語言編寫的類和接口組成,可以為多種關系數據庫提供統(tǒng)一訪問通用性:只需用JDBCAPI編寫一個程序,就可以向相應數據庫發(fā)送SQL語句,進而訪問多種不同的數據庫ODBC與JDBC共同點:ODBC:微軟公司開發(fā)的用于操作數據庫的方法JDBC:Sun公司開發(fā)的用于操作數據庫的方法不同點:ODBC支持的數據庫類型多JDBC基于Java跨平臺特性,可移植性好JDBC簡介JDBC能哪完成3件事?與一個數據庫建立連接。向數據庫發(fā)送SQL語句。處理數據庫返回的結果。與數據庫建立連接的兩種方式:建立JDBC-ODBC橋接器:加載純Java數據庫驅動程序JDBC簡介1)建立JDBC-ODBC橋接器:由Sun公司本身開發(fā)出來的軟件模塊隨著JDK的更新,它的各種操作的API都是最新的性能不高(通常在教學中使用)2)加載純Java數據庫驅動程序所有驅動程序由各個數據庫生產廠商按照JDBC標準提供經常不支持最新版本的JDK性能較高(通常在軟件開發(fā)中使用)JDBC簡介使用JDBC-ODBC橋接器連接數據庫的過程:1)創(chuàng)建一個數據庫(Access)2)創(chuàng)建一個ODBC數據源,同數據庫建立連接3)載入驅動程序,建立一個JDBC-ODBC橋接器4)創(chuàng)建鏈接(Connection)對象,連接到數據庫5)創(chuàng)建語句(Statement)對象6)執(zhí)行SQL語句,得到查詢結果(ResultSet)7)對結果操作后,關閉連接JDBC-ODBC橋接器連接數據庫
1.建立數據庫使用Access創(chuàng)建一個數據庫student.mdb
該庫中有一個表,表的名字是“成績表”;該表中number、name、birthday字段的屬性是文本;math、english字段的屬性是數字。關鍵字是number,見教材圖15.1JDBC-ODBC橋接器連接數據庫
2.創(chuàng)建一個ODBC數據源1)打開"數據源(ODBC)"管理器:打開控制面板,選擇“性能和維護”→“管理工具”→“數據源(ODBC)”;或雙擊c:\windows\system32下的可執(zhí)行文件“odbcad32”。此時會出現ODBC數據源管理器的對話框。JDBC-ODBC橋接器連接數據庫
2.創(chuàng)建一個ODBC數據源2)添加數據源的驅動程序:在ODBC數據源管理器對話框中選擇“用戶DSN”然后單擊“添加”按鈕,將出現安裝數據源的驅動程序對話框在選擇列表中選擇相應的驅動程序,在選好之后,單擊“完成”按鈕。JDBC-ODBC橋接器連接數據庫
2.創(chuàng)建一個ODBC數據源3)創(chuàng)建數據源:完成上步操作后,系統(tǒng)將出現創(chuàng)建數據源對話框起名:為新建的數據源起一個名字;選擇:為新建的數據源選擇一個數據庫;高級設置:設置登錄名稱和密碼。JDBC-ODBC橋接器連接數據庫
3.建立一個JDBC-ODBC橋接器Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")Class是包java.lang中的一個類;Class類通過調用靜態(tài)方法forName加載sun.jdbc.odbc包中的JdbcOdbcDriver類來建立橋接器;建立橋接器時,可能會發(fā)生異常,需要捕捉(參見教材P393代碼)JDBC常用類與接口使用包java.sql常用類與接口:
DriverManagerConnectionStatement
PreparedStatement
ResultSetJDBC-ODBC橋接器連接數據庫
4.創(chuàng)建一個連接對象
Connectioncon=DriverManager.getConnection("URL","login
name","password");首先,使用java.sql包中的Connection類聲明一個對象;然后,再使用類DriverManager調用其靜態(tài)方法getConnection創(chuàng)建這樣一個對象;URL:jdbc:odbc:數據源名字建立連接時,應捕捉SQLException異常;參見教材P393代碼;Statementsql=con.createStatement();首先使用Statement聲明一個SQL語句對象;通過剛剛創(chuàng)建的連接數據庫的對象con調用方法createStatement()創(chuàng)建一個SQL語句對象;PreparedStatement
sql;
sql=con.prepareStatement("SQL語句");預編譯處理后,生成該數據庫底層的內部命令,并將該命令封裝在PreparedStatement對象中JDBC-ODBC橋接器連接數據庫
5.創(chuàng)建SQL語句對象
sql.executeUpdate(“SQL語句”);
UPDATEINSERTDELETEsql.executeQuery(“SQL語句”);由SELECT語句使用,將數據庫查詢結果存放在一個ResultSet類的對象里。JDBC-ODBC橋接器連接數據庫
6.執(zhí)行SQL語句,進行查詢ResultSet對象:實際上是一個管式數據集,即統(tǒng)一形式的列組織的數據行組成;ResultSet對象一次只能看到一個數據行,使用next()方法走到下一個數據行;ResultSet對象調用方法getXxx(),傳遞參數“位置索引”或列名稱,即可得到對應的字段值。注意:使用該方法時不可顛倒順序!參見教材394頁表15.1JDBC-ODBC橋接器連接數據庫
6.執(zhí)行SQL語句,進行查詢JDBC-ODBC橋接器連接數據庫
7.關閉數據庫數據庫每次使用后都必須關閉:關閉數據庫的順序與打開數據庫的順序相反1)先關閉結果集(ResultSet)2)再關閉操作(Statement)3)最后關閉連接(Connection)15.3順序查詢
使用結果集Result的next()方法,可以順序的查詢。一個結果集將游標最初定位在第一行的前面,第一次調用next()方法使游標移動到第一行。next()方法返回一個boolean型數據,當游標移動到最后一行之后返回false。
15.4可滾動結果集
為了得到一個可滾動的結果集,必須使用下述方法先獲得一個Statement對象:Statementstmt=con.createStatement(inttype,intconcurrency);然后,根據參數的type、concurrency的取值情況,stmt返回相應類型的結果集:ResultSetre=stmt.executeQuery(SQL語句);type的取值決定滾動方式:ResultSet.TYPE_FORWORD_ONLY
結果集的游標只能向下滾動。ResultSet.TYPE_SCROLL_INSENSITIVE
結果集的游標可以上下移動,當數據庫變化時,當前結果集不變。ResultSet.TYPE_SCROLL_SENSITIVE
返回可滾動的結果集,當數據庫變化時,當前結果集同步改變。Concurrency取值決定是否可以用結果集更新數據庫:ResultSet.CONCUR_READ_ONLY
不能用結果集更新數據庫中的表。ResultSet.CONCUR_UPDATETABLE
能用結果集更新數據庫中的表。滾動查詢常用到的ResultSet的方法:參見教材P398previous()first()last()
beforeFirst()
afterlast()
getRow()
absolute(introw)15.5排序查詢
可以在SQL語句中使用ORDERBY子語句,對記錄排序。例如:按總成績排序查詢的SQL語句SELECT*FROMstudentORDERBYmath+english升序:ASC(默認)降序:DESC參見教材P399例題15.415.6模糊查詢
可以用SQL語句操作符LIKE進行模式般配:使用“%”代替0個或多個字符;用一個下劃線“_”代替1個字符;比如,下述語句查詢姓氏是“王”的記錄:rs=sql.executeQuery("SELECT*FROMstudentsWHEREnameLIKE‘王%’");參見教材P400例題15.5課堂實驗:編寫登陸窗口類LoginFrame(如下圖所示),用于輸入用戶名和密碼。編寫數據庫查詢類DataOperation,該類包含靜態(tài)方法isLogin,用于查詢數據庫判斷登陸用戶是否存在。15.7隨機查詢
用Math類的靜態(tài)方法random()可以產生一個大于0小于1的隨機數。使用下述公式:
inti=(int)(Math.random()*number);
可以產生一個0到number之間的隨機數。根據這個隨機數,將游標移動到相應的行,并輸出該行記錄。參見教材P401例題15.615.8更新、添加、刪除記錄
使用SQL語句更新記錄中字段的值Statement對象調用方法:
publicint
executeUpdate(String
sqlStatement);
通過參數sqlStatement指定的方式實現對數據庫表中記錄的字段值的更新。SQL更新操作常用命令:
UPDATEINSERTDELETESQL更新操作常用命令:UPDATE:UPDATEScoreTable
SETmath=88WHEREname='錢二'INSERT:INSERTINTOScoreTable
VALUES('2005008','1989-12-02','劉明明',70,95)DELETE:DELETEFROMScoreTable
WHEREnumber='2003004'課堂練習:編寫程序,完成如下數據庫操作:將"錢大能"的英文成績改為66分;插入記錄('2005006','李向陽','1934-12-02',96,91)刪除學號為'2003002'的學生的信息記錄課堂練習:編寫一個"學生成績查詢系統(tǒng)":15.9預處理語句
當向數據庫發(fā)送一個SQL語句后,比如:“Select*Fromchengjibiao”首先,數據庫庫中的SQL解釋器負責將把SQL語句生成底層的內部命令然后,執(zhí)行該命令,完成有關的數據操作。潛在的問題:如果應用程序不斷地向數據庫提交SQL語句,勢必會增加數據庫中SQL解釋器的負擔,影響執(zhí)行的速度。15.9預處理語句
預處理:首先,應用程序針對連接的數據庫,事先將SQL語句解釋為數據庫底層的內部命令;然后,直接讓數據庫去執(zhí)行這個命令。優(yōu)點:不僅減輕了數據庫的負擔;而且也提高了訪問數據庫的速度。對于JDBC,如果使用Connection和某個數據庫建立了連接對象con,那么con就可以調用prepareStatement(String
sql)
方法對SQL語句進行預編譯處理;預編譯處理后,會生成該數據庫底層的內部命令,并將該命令封裝在PreparedStatement對象中;那么該對象調用下列方法,都可以使得該底層的內部命令被數據庫執(zhí)行:execute();executeQuery();executeUpdate()15.9預處理語句
PreparedStatement對象可調用的方法:execute():可執(zhí)行SQL任何命令executeQuery():執(zhí)行查詢命令executeUpdate():執(zhí)行更新、插入或刪除命令只要編譯好了PrepareedStatement對象,那么該對象可以隨時的執(zhí)行上述方法,顯然提高了訪問數據庫的速度15.9預處理語句
參見教材P401例題15.6con=DriverManager.getConne
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度醫(yī)療設備采購與維護變更合同補充協(xié)議3篇
- 二零二五年度影視制作現場安全管理合同4篇
- 二零二五年度出租車公司車輛清潔維護合同4篇
- 二零二五年度智慧社區(qū)民宿布草托管及維護合同4篇
- 中小型廣告制作合同
- 2025年度車輛安全應急處理預案合同范本4篇
- 2025年度創(chuàng)業(yè)型企業(yè)新媒體營銷效果跟蹤與分析合同4篇
- 二零二五年度道路橋梁養(yǎng)護承包經營合同范本4篇
- 2025年度汽車租賃與車輛租賃租賃合同12篇
- 二零二五年度集成廚房設備采購與安裝服務合同2篇
- 道路瀝青工程施工方案
- 《田口方法的導入》課件
- 內陸?zhàn)B殖與水產品市場營銷策略考核試卷
- 人教版(2024年新教材)七年級上冊英語Unit 7 Happy Birthday 單元整體教學設計(5課時)
- DLT 572-2021 電力變壓器運行規(guī)程
- 公司沒繳社保勞動仲裁申請書
- 損傷力學與斷裂分析
- 2024年縣鄉(xiāng)教師選調進城考試《教育學》題庫及完整答案(考點梳理)
- 車借給別人免責協(xié)議書
- 應急預案評分標準表
- “網絡安全課件:高校教師網絡安全與信息化素養(yǎng)培訓”
評論
0/150
提交評論