Java語言程序設計-v3-15_第1頁
Java語言程序設計-v3-15_第2頁
Java語言程序設計-v3-15_第3頁
Java語言程序設計-v3-15_第4頁
Java語言程序設計-v3-15_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第十五章數據庫訪問遼寧機電職業(yè)技術學院信息工程系軟件教研室遲勇回顧補充代碼完成:服務器端程序:/*建立服務器端ServerSocket對象*/serverSocket=newServerSocket(2000);clientSocket=serverSocket.

();//接收來自客戶端的Socketbr=newBufferedReader(newInputStreamReader(

.getInputStream()));System.out.println(“來自客戶端的信息是:”+br.readLine());客戶端程序:SocketclientSocket=newSocket("",

);//建立客戶端的Socket/*建立接收服務器端信息的輸入流對象br*/BufferedReaderbr=newBufferedReader(newInputStreamReader(clientSocket.getInputStream()));acceptclientSocket2000本章學習任務掌握JDBC操作數據庫的語法使用JDBC-ODBC橋訪問數據庫使用本地協議驅動(Type4)方案訪問SQLServer2000、2005、2008~2016數據庫使用JDBC4.0操作ApacheDerby本章技能目標了解JDBC的作用與地位了解JDBC的分類和使用學習使用JDBC-ODBC橋訪問數據庫掌握訪問SQLServer和其它類型的數據庫的方法掌握JDBC4.0操作ApacheDerby數據庫的方法預習檢查(1)--預習新單詞單詞釋義單詞釋義RDBMSSQLJDBCODBCnative預習檢查(2)JDBC-ODBCBridge創(chuàng)建數據庫連接串的形式JDBCType4驅動,操作MSSQLServer2008數據庫的連接串形式數據庫訪問-內容目錄JDBC概述JDBCAPI簡介JDBC操作的基本步驟使用JDBC-ODBCBridge連接數據庫示例連接SQLServer數據庫示例使用JDBC4.0操作ApacheDerby連接其他類型的數據庫15.1JDBC概述JDBC是一組可用于訪問數據庫的JavaAPI類庫,它由100%Java純代碼編寫的類和接口組成。從圖15-1可以看出,JDBC的結構分為兩層:JDBCAPI和JDBCDriverAPI,前者負責應用程序與JDBCDriverManager之間的通信,后者負責JDBCDriverManager與數據庫驅動程序具體實現之間的通信。因為不同的DBMS的驅動(Driver)不同,為了保證網絡上應用程序能夠訪問到不同類型的數據庫,必須要將來自應用程序端的調用轉換成能夠為不同數據庫所能識別的驅動,JDBC就是“翻譯”。圖15-1JDBC結構圖

應用程序1應用程序2應用程序3JDBC應用程序接口(JDBCAPI)JDBC驅動管理器(JDBCDriverManager)數據庫驅動(Driver)SQLServerMySQLOracle…………JDBC的作用如前所述,我們總結一下JDBC的作用有3點:1)與數據庫建立連接2)向數據庫發(fā)送SQL語句3)檢索數據庫返回的結果15.1.2談談ODBC

MicroSoft的ODBC(開放式數據庫連接:OpenDatabaseConnectivity)接口技術參照SQL標準化組織對SQL接口的定義而制作ODBC有四個主要組成部分:應用程序接口,驅動器管理器,數據庫驅動器和數據源。(參考圖15-2ODBC結構圖)其中數據源(DataSource)需要在程序運行前預先設置,它包含了數據庫路徑及其驅動兩部分信息(配置方法請參考后面的示例)。圖15-2ODBC結構圖應用程序1應用程序2應用程序3ODBC應用程序接口(ODBCAPI)ODBC驅動管理器(ODBCDriverManager)ODBC驅動(ODBCDriver)SQLServerMySQLOracle…………15.1.3JDBC支持的兩種編程模型二層模型(C/S)C/S模型被稱為客戶端(Client)/服務器(Server)模型,一般稱C/S模型為胖客戶端模型。三層模型(C/S或B/S)三層模型是指將數據處理過程分為三部分:第一層是客戶端(用戶界面層),提供用戶與系統(tǒng)的友好訪問;第二層是應用服務層(也叫中間層),專門負責業(yè)務邏輯的實現;第三是數據層,負責數據信息的存儲、訪問及其優(yōu)化。C/S或B/S模型(瀏覽器Browser/服務器Server模型)都可以使用稱為中間層的服務層,客戶端的命令首先發(fā)送給一個所謂“中間層”的業(yè)務邏輯層,中間層再將SQL語句發(fā)給DMBS處理,執(zhí)行的結果也同樣再由中間層轉交到客戶端,如圖15-3所示。圖15-3三層模型結構圖這樣設置編程構架的結果是:客戶端不再承受大量的邏輯工作而轉由中間層處理,例如B/S模型的Browser是指在客戶端只安裝瀏覽器即可完成用戶的訪問,而所有負載均安置在服務器端,所以一般稱B/S模型為瘦客戶端模型三層模型最直接的好處是,將相同的業(yè)務邏輯(如訪問數據庫操作)組合為一個中間組件,利于組件的重用。當然三層模型也是分布式開發(fā)多層模型的基礎。客戶端DBMS中間層15.1.4JDBC驅動程序的類型

JDBC針對不同的應用場合,可以采用不同的方案來訪問數據庫,例如圖15-1的“數據庫Driver層”訪問DBMS時可以分為兩種情況:使用JDBC-ODBC橋或使用供應商提供的JDBC驅動,如圖15-4-1所示。Java應用程序Java驅動管理器JDBC-ODBC橋ODBC供應商提供的JDBC驅動DBMS

(圖15-4-1Java訪問數據庫的方案)JDBC驅動程序的類型其中后者又分為3種形式:本地部分Java驅動、網絡全驅動、本地協議全驅動,如圖15-4-2、如圖15-4-3、如圖15-4-4。

Java應用程序DB客戶端運行庫數據庫中間件服務器Java應用程序數據庫訪問中間件數據庫Java應用程序數據庫圖15-4-2本地部分Java驅動圖15-4-2網絡全驅動圖15-4-2本地協議全驅動四種JDBC驅動(Driver)的區(qū)別:1)JDBC-ODBC橋(JDBC-ODBCBridge)和ODBCDriver這種方案通過JDBC-ODBC橋接器連接ODBC驅動器提供數據庫連接,這要求每一臺客戶機都裝有ODBC的驅動器。由于受安裝有ODBC的操作系統(tǒng)的局限,這種方案只適用于Windows機。使用JDBC-ODBC橋的方式訪問數據庫的特點是:配置相對比較簡單,但安全性和穩(wěn)定性都比較低,基本不具備實現分布式能力,效率也是四種方案中最低的。

2)本地部分Java驅動(Native-APIpartly-JavaDriver)這種方案將JDBC指令轉化成連接所使用的DBMS驅動。各客戶機使用的數據庫可能是Oracle,或是Sybase等,都需要在客戶端上安裝相應DBMS的驅動程序庫。四種JDBC驅動(Driver)的區(qū)別:3)網絡全驅動(JDBC-NetAll-JavaDriver)這種方案將JDBC指令轉化成獨立于DBMS的網絡協議形式,再由服務器轉化為特定DBMS的協議形式。有關DBMS的協議由各數據庫廠商決定。這種方案可以聯接到不同的數據庫上,最為靈活,但安全性存在一定的問題,另外,作為中間件的驅動還在完善中。、4)本地協議全驅動(Native-protocolAll-JavaDriver)這種方案將JDBC指令轉化成網絡協議后不再轉換,由DBMS直接使用。相當于客戶機直接與服務器聯系,對局域網適用,訪問效率也最高。在這四種驅動中,后兩類“純Java”(All-Java)的驅動效率更高,也更具有通用性。總結JDBC的優(yōu)、缺點總結JDBC的優(yōu)點如下:

1)JDBCAPI與ODBC十分相似,利于理解;2)JDBC的出現使得編程人員從復雜語法調用中解脫,而致力于應用程序中的關鍵邏輯;標準統(tǒng)一的語法,為編程人員提供了與Java系統(tǒng)的其他部分保持一致的接口;3)100%純Java代碼制作的JDBC使得程序的可移植性大大加強;4)JDBCAPI是面向對象的類庫,利于構建和維護大型應用工程。缺點如下:1)使用JDBC,訪問數據的效率會受到一定程度的影響;2)因為要兼顧Java跨平臺的因素,JDBC構建過程中需要考慮太多不同廠家的產品,這使得一些驅動標準在現階段還不能得到完善。數據庫訪問-內容目錄JDBC概述JDBCAPI簡介JDBC操作的基本步驟使用JDBC-ODBCBridge連接數據庫示例連接SQLServer數據庫示例使用JDBC4.0操作ApacheDerby連接其他類型的數據庫15.2JDBCAPI簡介JDBCAPI定義了一些完成數據庫操作的接口和類,通過這些API,JDBC實現了三個基本的功能:建立與數據的連接、執(zhí)行SQL語句和處理執(zhí)行結果。這些接口和類都在Java.sql包中。sql包中的常用接口和類2.sql包中的常用類Java.sql.DriverManager:驅動管理器類,負責JDBCDriver的裝載、建立新的數據庫連接;Java.sql.SQLException:負責處理訪問數據庫時的出錯信息;Java.sql.SQLWarning:負責處理訪問數據庫時的警告信息。1.sql包中的常用接口java.sql.Driver:數據庫驅動類,每個驅動程序類必須實現的接口;java.sql.Connection:與數據庫的連接;Java.sql.Statement:管理在一個數據庫連接上的靜態(tài)SQL語句的執(zhí)行。包括兩個子接口:java.sql.PreparedStatement:可保存一個預編譯的SQL語句,以提高重復執(zhí)行的效率;java.sql.CallableStatement:執(zhí)行已存儲的可調用SQL過程;Java.sql.ResultSet:定義指定SQL語句執(zhí)行的原始結果集,并提供對執(zhí)行SQL語句后產生的結果集的訪問;數據庫訪問-內容目錄JDBC概述JDBCAPI簡介JDBC操作的基本步驟使用JDBC-ODBCBridge連接數據庫示例連接SQLServer數據庫示例使用JDBC4.0操作ApacheDerby連接其他類型的數據庫

15.3JDBC操作的基本步驟

驅動程序管理器(DriverManager)連接(Connection)驅動程序(Driver)語句(Statement)結果集(ResultSet)JDBC操作數據庫的5個基本API為:

使用以上API就可以實現對數據庫的操作,詳細格式如下:JDBC操作的基本步驟1)注冊驅動DriverManager類是JDBC的管理層,作用于用戶界面程序和驅動程序之間。它跟蹤可用的驅動程序,并在數據庫和相應驅動程序之間建立連接。DriverManager.registerDriver(driver);例如JDBC-ODBCBridge驅動寫成:Stringdriver=“sun.jdbc.odbc.JdbcOdbcDriver”;注冊JDBC驅動程序時,DriverManager將從驅動程序列表中讀取指定的驅動并實例化它們。若要顯示地注冊并加載某種驅動,可以使用Class.forName(),此步驟可以省略。JDBC操作的基本步驟--22)注冊并加載驅動Class類的forName()方法用于返回指定參數類的對象,這里用于加載并實例化驅動。Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);也可寫成:Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”).newInstance();使用后一種方法加載驅動時,往往是因為程序中需要使用這個Driver的實例,如果不需要這個實例,使用前一種方法就可以了,因為在當前驅動加載時,已經實例化完成。JDBC操作的基本步驟對于從網絡下載的驅動類的字符串書寫格式就要視下載包的路徑決定,例如不同數據庫的Driver串(以“本地協議全驅動”為例)格式如下://SQLServerclass.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//MySQLclass.forName("org.gjt.mm.mysql.Driver");根據下載包結構不同或為class.forName("com.mysql.jdbc.Driver");...與步驟1)的DriverManager.registerDriver()方法不同的是,Class.forName()方法只加載并實例化一種指定的驅動。JDBC操作的基本步驟--33)

建立連接

Connectionconn=DriverManager.getConnection(URL,[login_name],[login_password]);試圖建立到給定數據庫URL的連接。它是接口,需由DriverManager類調用自己靜態(tài)的getConnection()方法得到。建立連接的URL格式建立連接的URL格式為:

jdbc:<subprotocal>:<subname>對于odbc子協議,其格式為:jdbc:odbc:<DataSource-name>例如:Stringurl=“jdbc:odbc:mydatasource”;//其中mydatasource為數據源名而對于“全驅動”,其URL格式有所不同,例如,SQLServer的URL格式為:jdbc:microsoft:sqlserver://主機:端口號;DatabaseName=數據庫名如下例:Connectionconn

=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=stuDB","sa","123");其中1433為SQLServer的端口號,stuDB為數據庫名,"sa"和"123"為SQLServer登錄名和密碼。JDBC操作的基本步驟--44)構造語句集Statement對象負責將SQL語句發(fā)送到DBMS。它是接口,其對象需由Connection對象調用createStatement()方法得到。Statementstmt=conn.createStatement( [intresultSetType], [intresultSetConcurrency], [intresultSetHoldability]);其中,參數resultSetType為鍵集類型,resultSetConcurrency為鍵集并發(fā)性,resultSetHoldability為鍵集可保持能力.如:表15-1createStatement()方法參數匯總JDBC操作的基本步驟Statement有兩個子接口Preparedstatement和Callablestatement,如圖15-5。StatementPreparedStatementCallableStatement圖15-5Statement類及其子類createStatement()方法參數匯總createStatement()方法參數匯總resultSetType為以下常量之一ResultSet.TYPE_FORWARD_ONLY結果集記錄指針只能向下移動ResultSet.TYPE_SCROLL_INSENSITIVE結果集記錄指針可以上下移動,但數據庫變化不會改變當前結果集ResultSet.TYPE_SCROLL_SENSITIVE結果集記錄指針可以上下移動,但數據庫變化后,當前結果集發(fā)生同步改變resultSetConcurrency為以下常量之一ResultSet.CONCUR_READ_ONLY結果集只讀,不能更新數據庫中的數據ResultSet.CONCUR_UPDATABLE結果集可更新,會影響到數據庫中的數據resultSetHoldability為以下常量之一ResultSet.HOLD_CURSORS_OVER_COMMIT表示修改提交時,不關閉ResultSet的游標ResultSet.CLOSE_CURSORS_AT_COMMIT表示修改提交時,關閉ResultSet的游標JDBC操作的基本步驟PreparedstatementPreparedstatement實例中包含了一個已經預編譯過的SQL語句,因此,要多次執(zhí)行一個SQL語句,使用PreparedStatement。SQL語句在創(chuàng)建時提供輸入參數,使用pstmt.setXXX()方法來設置參數,用executeUpdate()方法執(zhí)行SQL語句。例如下面的程序段:

PreparedStatementpStmt=conn.preparedStatement("insertintoemp(empno,ename)values(?,?)"); pStmt.setInt(1,12);//給第一個位置的參數設值為12 pStmt.setString(2,"tom");//給第二個位置的參數設值為"tom" pStmt.executeUpdate();//執(zhí)行SQL語句JDBC操作的基本步驟CallablestatementCallableStatement用于執(zhí)行SQL存儲過程,可以利用存儲過程設置輸入或輸出參數。例如,有存儲過程showEmployees(in,out),其中in和out為參數。

CallableStatementcStmt=conn.prepareCall("{callshowEmployees(?,?)}");JDBC操作的基本步驟--55.

提交SQL語句常用SQL語句介紹:SQL語句大致分為3種:DDL(數據定義語言)如CREATE,ALTER,DROP,DECLAREDML(數據操縱語言)如SELECT,DELETE,UPDATE,INSERTDCL(數據控制語言)如GRANT,REVOKE,COMMIT,ROLLBACK執(zhí)行提交SQL語句的方法:Statement及其子接口支持下列3種方法將SQL語句提交到DBMSexecuteQuery()方法:主要用于SELECT語句,返回值是結果集,例如:ResultSetrs=stmt.executeQuery("select*fromcustmer");executeUpdate()方法:用來創(chuàng)建和更新表(如:insert,delete,update,create,drop等),返回值是整型值,用以表示被影響的行數,例如:intnum=stmt.executeUpdate("createtableCustmer(CustIdnumber(3),CustNamevarchar2(15)");execute()方法:返回布爾值,用于執(zhí)行任何SQL語句,適用于一次性返回多個結果集的情況,例如:booleanb=stmt.execute("……更新一個字段值,它在多個表中有關聯關系……");JDBC操作的基本步驟--66.關閉ResultSet,Statement,Connection對象

rs.close();

stmt.close();//同時關閉了rs

conn.close();需要注意,關閉Statement對象的同時也會關閉其當前的ResultSet對象,如果有的話。數據庫訪問-內容目錄JDBC概述JDBCAPI簡介JDBC操作的基本步驟使用JDBC-ODBCBridge連接數據庫示例連接SQLServer數據庫示例使用JDBC4.0操作ApacheDerby連接其他類型的數據庫

15.4使用JDBC-ODBCBridge連接數據庫示例

下面,我們參照15.3節(jié)介紹的步驟,使用最簡單的JDBC-ODBCBridge方式連接Access數據庫。假定有Access庫文件為student.mdb,庫中有表stuTable,其設計視圖如圖15-6所示:圖15-6student.mdb庫的設計視圖圖15-7student.mdb庫的數據視圖數據視圖如圖15-7所示:使用JDBC-ODBCBridge連接數據庫示例1.首先設置ODBC數據源打開“控制面板”,選擇其中的“管理工具”,再打開“數據源(ODBC)”,如圖15-8所示。圖15-8使用JDBC-ODBCBridge連接數據庫示例選擇“系統(tǒng)DSN”選項卡,單擊“添加”按鈕,在打開的選擇框中選擇“MicrosoftAccessDriver(*.mdb)”驅動如圖15-9所示。在隨后的對話框中(圖15-10)的“數據源名”文本框中輸入“stuDataSource”做為數據源名稱,然后單擊“選擇”按鈕,進入下一步。圖15-9使用JDBC-ODBCBridge連接數據庫示例圖15-10在打開的“選擇數據庫”對話框中選中student.mdb數據庫即可,如圖15-11。使用JDBC-ODBCBridge連接數據庫示例圖15-12單擊確定完成ODBC數據源的配置,如圖15-12所示。圖15-11編寫源代碼importjava.sql.*;//導入sql包publicclassTestJDBC{ publicstaticvoidmain(Stringargs[]) { intid,score; Stringname; Connectioncon;//定義連接對象

Statementstmt;//定義語句集對象

ResultSetrs;//定義鍵集對象

try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}//加載驅動

catch(ClassNotFoundExceptione){}try{ con=DriverManager.getConnection("jdbc:odbc:stuDataSource");//創(chuàng)建數據庫連接

stmt=con.createStatement();//創(chuàng)建語句集

rs=stmt.executeQuery("select*fromstuTablewherescorelike'%"+args[0]+"%'");//以控制臺參數為查詢條件執(zhí)行查詢并返回鍵集

while(rs.next())//判斷鍵集是否有下一條記錄

{ id=rs.getInt("id");//獲取當前記錄的第一個值(即學號)

name=rs.getString(2); score=rs.getInt("score"); System.out.print("學生學號為:"+id); System.out.print("學生姓名為:"+name); System.out.print("學生成績?yōu)椋?+score); System.out.println(""); } }catch(SQLExceptione){}}}【運行結果】在控制臺中輸入如下命令運行:控制臺提示符>javaTestJDBC9將輸出所有分數中帶字符‘9’的記錄,如圖所示。數據庫訪問-內容目錄JDBC概述JDBCAPI簡介JDBC操作的基本步驟使用JDBC-ODBCBridge連接數據庫示例連接SQLServer數據庫示例使用JDBC4.0操作ApacheDerby連接其他類型的數據庫15.5連接SQLServer數據庫示例1.安裝SQLServer數據庫注意事項:本小節(jié)我們將學習一個使用Type4驅動類型(Java本地協議全驅動)來操作數據庫的例子。因為默認時JDBC不支持SQLServer數據庫的“Windows認證”方式,所以SQLServer的安裝過程中一定要選擇“混合身份驗證安裝”。15.5連接SQLServer數據庫示例2.數據庫驅動的下載:讀者可以從網絡上microsoft公司的下載頁面中找到SQLServer本地協議驅動(Type4),或從搜索引擎中得到驅動的下載鏈接。例如:SQLServer2000驅動包括下面三個文件:msutil.jar、mssqlserver.jar、msbase.jar。JDBC4.0驅動文件為:sqljdbc4.jar。參考微軟官方下載網址:/downloads/,下載最新的驅動。3.配置:將這三個文件復制到指定目錄(假設為D:\JDBCDriver)并配置到classpath環(huán)境變量中,格式如下:.;D:\JDBCDriver\msutil.jar;D:\JDBCDriver\mssqlserver.jar;D:\JDBCDriver\msbase.jar4.兩種連接串形式Connectionconn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=stuDB","sa","123");或:Connectionconn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=stuDB?user=sa&password=123");其中sa為數據庫登錄用戶名,123為登錄數據庫的密碼。15.5連接SQLServer數據庫示例5.程序實例假設有SQLServer數據庫stuDB,庫中有學生數據表stuTable(字段同圖15-7)。現在學校要為指定的學生更改成績,使用的SQL語句為:UPDATEstuTableSETscore=score+分數值WHEREid<學號范圍andscore<分數;考慮到需要更改成績的學生可能有多個,因此使用PreparedStatement類完成,它可以預編譯SQL語句,有利于處理速度的提高。代碼如下:15.5連接SQLServer數據庫示例importjava.sql.*;publicclassUpdateStuDB{publicstaticvoidmain(String[]args){ Stringurl,user,password; url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=StuDB“; user="sa“;password="123"; try{/*加載數據庫驅動*/ Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

}

catch(ClassNotFoundExceptionex){ ex.printStackTrace();

}try{ Connectioncon=DriverManager.getConnection(url,user,password); /*SQL語句中的?號為待輸入參數,將由setXXX()方法賦值*/StringstrSQL="UPDATEstuTableSETscore=score+5FROMstuTableWHEREid<?andscore<?"; /*創(chuàng)建PreparedStatement語句集對象*/PreparedStatementpstmt=con.prepareStatement(strSQL); pstmt.setInt(1,50);//給SQL語句的第一個參數賦值

pstmt.setInt(2,90);//給SQL語句的第二個參數賦值

intflag=pstmt.executeUpdate();//提交更新操作

if(flag!=0){ System.out.println("數據庫更新成功!"); } }catch(SQLExceptionex){}}}【運行結果】數據庫更新成功!查看數據庫發(fā)現,所有分數小于90分的學生的成績增加了5分。數據庫訪問-內容目錄JDBC概述JDBCAPI簡介JDBC操作的基本步驟使用JDBC-ODBCBridge連接數據庫示例連接SQLServer數據庫示例使用JDBC4.0操作ApacheDerby連接其他類型的數據庫15.6使用JDBC4.0操作ApacheDerby什么是ApacheDerby?DK6新增了一個名為JavaDB的安裝項目,默認安裝在Sun\JavaDB目錄下,它就是ApacheDerby內嵌式數據庫。JavaDB是JavaSE6的新成員,是一個純Java實現、開源的數據庫管理系統(tǒng)(DBMS),源于Apache軟件基金會(ASF)名下的項目Derby。它的完整類庫只有4MB大小。控制臺命令行完成Derby數據庫操作假定Derby數據庫安裝在D:\Java\Sun\JavaDB目錄下,其lib目錄內容如下,如圖15-20圖15-20控制臺命令行完成Derby數據庫操作在內嵌模式下創(chuàng)建庫及表的步驟如下:首先,在控制臺中進入lib目錄;執(zhí)行:java-jarderbyrun.jarij,就進入數據庫內嵌運行模式;然后在ij>下輸入connect'jdbc:derby:StuDB;create=true';創(chuàng)建數據表,名稱為stuTable,有三個字段:createtablestuTable(idint,namevarchar(20),scoreint);插入數據:insertintostuTablevalues(1,'Tom',99);insertintostuTablevalues(2,'Marry',100);查詢數據:select*fromstuTable;退出用內嵌模式用exit;圖15-20查詢Derby數據庫操作的實例步驟如下:將上面創(chuàng)建的StuDB移動到TestDerby.java程序代碼所在的目錄中;將derby.jar類庫配置到classpath環(huán)境變量中編譯后,運行。//Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();Connectionconn=DriverManager.getConnection("jdbc:derby:stuDB;user=app;password=app“);Statementstmt=conn.createStatement();ResultSetrs=stmt.executeQuery(“SELECTid,name,scoreFROMstuTable”);while(rs.next()){...}運行結果使用JDBC4.0操作ApacheDerby數據庫:創(chuàng)建與查詢//Class.forName(“org.apache.derby.jdbc.EmbeddedDriver”).newInstance();conn=DriverManager.getConnection("jdbc:derby:stuDB;create=true;user=app;password=app“);conn.setAutoCommit(false);Statementstmt=conn.createStatement();stmt.execute("createtablestuTable(idint,namevarchar(20),scoreint)“);stmt.execute(“insertintostuTablevalues(1,‘Tom’,99)”);stmt.execute(“insertintostuTablevalues(2,‘Marry’,100)”);ResultSetrs=stmt.executeQuery(“SELECTid,name,scoreFROMstuTable”);System.out.println(“id\tname\tscore”);while(rs.next()){StringBuilderbuilder=newStringBuilder(rs.getInt(1)); builder.append(rs.getString(2));... System.out.println(builder.toString());}stmt.execute(“droptableStuTable”);rs.close();stmt.close();mit();conn.close();Derby的網絡模式模擬一個在本地機(localhost)運行網絡模式的實例步驟如下:1)將derby.jar、derbynet.jar、derbytools.jar、derbyclient.jar類庫配置到classpath環(huán)境變量中,或者從控制臺直接進入Java

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論