數(shù)據(jù)庫(kù)原理與開(kāi)發(fā)技術(shù) 課件 10.2 JDBC技術(shù)基礎(chǔ)_第1頁(yè)
數(shù)據(jù)庫(kù)原理與開(kāi)發(fā)技術(shù) 課件 10.2 JDBC技術(shù)基礎(chǔ)_第2頁(yè)
數(shù)據(jù)庫(kù)原理與開(kāi)發(fā)技術(shù) 課件 10.2 JDBC技術(shù)基礎(chǔ)_第3頁(yè)
數(shù)據(jù)庫(kù)原理與開(kāi)發(fā)技術(shù) 課件 10.2 JDBC技術(shù)基礎(chǔ)_第4頁(yè)
數(shù)據(jù)庫(kù)原理與開(kāi)發(fā)技術(shù) 課件 10.2 JDBC技術(shù)基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論