版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
10.2JDBC技術(shù)基礎(chǔ)本章主要內(nèi)容:(1)Java、Eclipse的下載安裝,JDBCforSQLServer驅(qū)動(dòng)下載(2)EclipseIDE中構(gòu)建JDBC數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序(4)Connection對(duì)象及常用方法(5)Statement對(duì)象及常用方法(6)ResultSet對(duì)象及常用方法(3)JDBC技術(shù)基礎(chǔ)10.2.1JDBCforSQLServer驅(qū)動(dòng)程序下載Java是通過(guò)JDBC(JavaDataBaseConnectivity,Java數(shù)據(jù)連接)來(lái)操作各種主流數(shù)據(jù)庫(kù)的。各種主流數(shù)據(jù)庫(kù)都提供了Java的API接口。Java操作SQLServer數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序需要單獨(dú)下載,其下載地址如下,進(jìn)入網(wǎng)址(一定要選擇官網(wǎng)),如圖所示。
/zh-cn/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15&viewFallbackFrom=sql-server-201910.2.1JDBCforSQLServer驅(qū)動(dòng)程序下載將下載的壓縮文件sqljdbc__chs.zip,解壓后,如圖所示。10.2.2JDBC簡(jiǎn)介JDBC是一種可以執(zhí)行SQL語(yǔ)句的JavaAPI,它由一組用Java語(yǔ)言編寫(xiě)的類(lèi)和接口組成。程序通過(guò)JDBCAPI連接到關(guān)系數(shù)據(jù)庫(kù),并使用SQL語(yǔ)句,來(lái)完成對(duì)數(shù)據(jù)庫(kù)的查詢(xún)、更新。后臺(tái)的數(shù)據(jù)庫(kù)安裝好之后,前臺(tái)的Java程序是不能直接訪問(wèn)數(shù)據(jù)庫(kù)的,必須要通過(guò)相應(yīng)的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。這個(gè)驅(qū)動(dòng)程序就是數(shù)據(jù)庫(kù)廠商的JDBC接口實(shí)現(xiàn),即對(duì)Connection等接口的實(shí)現(xiàn)類(lèi)的jar文件。如圖所示。10.2.2JDBC簡(jiǎn)介10.2.3JDBC常用接口及常用方法簡(jiǎn)介1.Driver接口Driver接口由數(shù)據(jù)庫(kù)廠家提供。在編程中要連接數(shù)據(jù)庫(kù),必須先加載特定廠商的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,不同的數(shù)據(jù)庫(kù)有不同的裝載方法。例如:
(1)加載MySql驅(qū)動(dòng):Class.forName("com.mysql.jdbc.Driver");(2)加載Oracle驅(qū)動(dòng):
Class.forName("oracle.jdbc.driver.OracleDriver");(3)加載SQLServer驅(qū)動(dòng):Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");10.2.3JDBC常用接口及常用方法簡(jiǎn)介2.Connection接口Connection是數(shù)據(jù)庫(kù)連接對(duì)象,每個(gè)Connection代表一個(gè)物理連接會(huì)話。要訪問(wèn)數(shù)據(jù)庫(kù),必須先建立數(shù)據(jù)庫(kù)連接??蛻?hù)端與數(shù)據(jù)庫(kù)所有交互都是通過(guò)Connection對(duì)象完成的,其創(chuàng)建方法為:Connectionconn=DriverManager.getConnection(url,user,pass);
不同的數(shù)據(jù)庫(kù)有不同的連接參數(shù),具體以對(duì)應(yīng)版本為準(zhǔn)。例如:(1)連接MySql數(shù)據(jù)庫(kù)(默認(rèn)端口號(hào)3306):Connectionconn=
DriverManager.getConnection("jdbc:mysql://host:port/database","user","password");
(2)連接Oracle數(shù)據(jù)庫(kù)(默認(rèn)端口號(hào)1521):Connectionconn=
DriverManager.getConnection("jdbc:oracle:thin:@host:port:db","user","password");
(3)連接SQLServer數(shù)據(jù)庫(kù)(默認(rèn)端口號(hào)1433):Connectionconn=
DriverManager.getConnection("jdbc:sqlserver://host:port;databaseName=db","user","password");10.2.3JDBC常用接口及常用方法簡(jiǎn)介表10-1Connection對(duì)象的常用方法序號(hào)方法方法說(shuō)明1createStatement()創(chuàng)建向數(shù)據(jù)庫(kù)發(fā)送SQL的statement對(duì)象2prepareStatement(sql)創(chuàng)建向數(shù)據(jù)庫(kù)發(fā)送預(yù)編譯SQL的PrepareSatement對(duì)象3prepareCall(sql)創(chuàng)建執(zhí)行存儲(chǔ)過(guò)程的CallableStatement對(duì)象4setAutoCommit(boolean
autoCommit)設(shè)置事務(wù)是否自動(dòng)提交5commit()提交事務(wù)6rollback()回滾事務(wù)10.2.3JDBC常用接口及常用方法簡(jiǎn)介3.Statement接口Statement對(duì)象用于向數(shù)據(jù)庫(kù)發(fā)送SQL語(yǔ)句并返回它所生成結(jié)果的對(duì)象,創(chuàng)建方法為:
Statementstmt=conn.createStatement();PrepareSatementstmt=conn.prepareStatement(sql);/*返回預(yù)編譯的Satement*/CallableStatementstmt=conn.prepareCall(sql);/*返回執(zhí)行存儲(chǔ)過(guò)程的Satement*/10.2.3JDBC常用接口及常用方法簡(jiǎn)介3.Statement接口表10-2Statement對(duì)象的常用方法序號(hào)方法方法說(shuō)明返回類(lèi)型1execute(String
sql)運(yùn)行任意sql語(yǔ)句(主要為DDL),返回值因sql不同而異boolean2executeQuery(String
sql)只能執(zhí)行select語(yǔ)句,返回ResultSet結(jié)果集ResultSet3executeUpdate(String
sql)只能執(zhí)行insert/update/delete操作,返回更新的行數(shù)int4addBatch(String
sql)把多條sql語(yǔ)句放到一個(gè)批處理中5executeBatch()向數(shù)據(jù)庫(kù)發(fā)送一批sql語(yǔ)句執(zhí)行10.2.3JDBC常用接口及常用方法簡(jiǎn)介4.ResultSet接口ResultSet對(duì)象用于執(zhí)行Select語(yǔ)句的結(jié)果集。它采用表格的方式,可以通過(guò)列索引或列名獲得數(shù)據(jù),并通過(guò)5種方法來(lái)移動(dòng)結(jié)果集中的記錄指針。ResultSet根據(jù)查詢(xún)不同類(lèi)型字段,提供不同的方法獲得數(shù)據(jù)。10.2.3JDBC常用接口及常用方法簡(jiǎn)介表10-3ResultSet對(duì)象的常用方法序號(hào)方法方法說(shuō)明1beforeFirst()移動(dòng)到ResultSet的最前面2Previous()往前移一行,若成功,返回true3next()往后移一行,若成功,返回true4afterLast()移動(dòng)到ResultSet的最后面5absolute(introw)移動(dòng)到指定行6getString(x)獲得指定索引列或列名x的值,其中該列的類(lèi)型為字符型7getFloat(x)獲得指定索引列或列名x的值,其中該列的類(lèi)型為數(shù)值型8getDate(x)獲得指定索引列或列名x的值,其中該列的類(lèi)型為日期型9getBoolean(x)獲得指定索引列或列名x的值,其中該列的類(lèi)型為布爾型10getObject(x)獲得指定索引列或列名x的值,其中該列的類(lèi)型為任何類(lèi)型10.2.4JDBC編程步驟分六步:
(1)加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)(有的版本可以省略)。
(2)通過(guò)DriveManager建立數(shù)據(jù)庫(kù)連接,返回Connection對(duì)象。
(3)通過(guò)Connection對(duì)象創(chuàng)建Statement對(duì)象。
(4)Statement對(duì)象的方法:execute()、executeQuery()、executeUpdate()執(zhí)行SQL語(yǔ)句。
(5)如果第4步執(zhí)行的是查詢(xún)語(yǔ)句,則對(duì)結(jié)果集ResultSet進(jìn)行操作。
(6)結(jié)束時(shí),回收數(shù)據(jù)庫(kù)資源,包括關(guān)閉ResultSet、Statement和Connection等資源。10.2.4JDBC編程步驟(1)進(jìn)入EclipseIDE,點(diǎn)擊:FileNewJavaProject,新建一個(gè)JavaProject(Java項(xiàng)目),命名為java_sqlserver。如圖所示。在EclipseIDE中,Java如果要操作SQLServer數(shù)據(jù)庫(kù),必須要將對(duì)應(yīng)的驅(qū)動(dòng)程序文件,例如mssql-jdbc-9.2.1.jre11添加到EclipseIDE的環(huán)境中。步驟如下:10.2.4JDBC編程步驟(2)將數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序文件附加到項(xiàng)目中,如圖所示。10.2.4JDBC編程步驟例10-2在新建的JavaProject中,新建一個(gè)含voidmain()方法的Class,根據(jù)學(xué)生信息表:S(sNo,sName,sex,dtBirthDate)在SQLServer中查詢(xún)并顯示學(xué)生信息。123456importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;例10-2在新建的JavaProject項(xiàng)目中,在SQLServer中查詢(xún)并顯示學(xué)生信息78910111213141516171819202122232425publicclassMyMain{publicstaticvoidmain(String[]args){StringconnectionUrl="jdbc:sqlserver://localhost:1433;" +"databaseName=student;user=sa;password=Sa123456";//連接字符串try{ Connectionconn=DriverManager.getConnection(connectionUrl);//建立連接 Statementstmt=conn.createStatement();//建立Statement對(duì)象StringSQL="selectsNo,sName,sexfroms";ResultSetrs=stmt.executeQuery(SQL);//執(zhí)行SQL語(yǔ)句查詢(xún)while(rs.next()){//ResultSet訪問(wèn)System.out.println(rs.getString("sNo")+""+rs.getString("sName"));//輸出 }rs.close();//關(guān)閉ResultSet對(duì)象stmt.close();//關(guān)閉Statement對(duì)象conn.close();//關(guān)閉Connection對(duì)象}catch(SQLExceptione){//捕獲意外錯(cuò)誤 e.printStackTrace();//輸出錯(cuò)誤信息}}}例10-2在新建的JavaProject項(xiàng)目中,在SQLServer中查詢(xún)并顯示學(xué)生信息10.2.5JavaProject與SQLServer編程案例下面以Java與SQLServer為例,開(kāi)發(fā)一個(gè)JavaProject(Java項(xiàng)目),其中采用Swing開(kāi)發(fā)Java圖形界面。Swing是一種輕量級(jí)組件,它采用MVC(Model-View-Controller,即模型-視圖-控制器)設(shè)計(jì)模式,其中模型用于維護(hù)組件的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共資源優(yōu)化配置-第2篇-深度研究
- 大數(shù)據(jù)標(biāo)準(zhǔn)化法規(guī)研究-深度研究
- K歌平臺(tái)算法優(yōu)化研究-深度研究
- 光聲顯微鏡技術(shù)進(jìn)展-深度研究
- 智慧城市物聯(lián)網(wǎng)數(shù)據(jù)挖掘-深度研究
- 數(shù)字經(jīng)濟(jì)與減貧機(jī)制-深度研究
- 農(nóng)村非物質(zhì)文化遺產(chǎn)保護(hù)-第1篇-深度研究
- 云平臺(tái)在教師培訓(xùn)中的應(yīng)用-深度研究
- 公共服務(wù)均等化路徑-深度研究
- 休閑時(shí)間利用研究-深度研究
- 2025年度版權(quán)授權(quán)協(xié)議:游戲角色形象設(shè)計(jì)與授權(quán)使用3篇
- 心肺復(fù)蘇課件2024
- 《城鎮(zhèn)燃?xì)忸I(lǐng)域重大隱患判定指導(dǎo)手冊(cè)》專(zhuān)題培訓(xùn)
- 湖南財(cái)政經(jīng)濟(jì)學(xué)院專(zhuān)升本管理學(xué)真題
- 全國(guó)身份證前六位、區(qū)號(hào)、郵編-編碼大全
- 2024-2025學(xué)年福建省廈門(mén)市第一中學(xué)高一(上)適應(yīng)性訓(xùn)練物理試卷(10月)(含答案)
- 《零售學(xué)第二版教學(xué)》課件
- 廣東省珠海市香洲區(qū)2023-2024學(xué)年四年級(jí)下學(xué)期期末數(shù)學(xué)試卷
- 房地產(chǎn)行業(yè)職業(yè)生涯規(guī)劃
- 江蘇省建筑與裝飾工程計(jì)價(jià)定額(2014)電子表格版
- MOOC 數(shù)字電路與系統(tǒng)-大連理工大學(xué) 中國(guó)大學(xué)慕課答案
評(píng)論
0/150
提交評(píng)論