版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)第10章 中間件技術(shù) 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)2 本章重要概念 (1)中間件的定義和作用(2)ODBC分層的體系結(jié)構(gòu):應(yīng)用程序,驅(qū)動(dòng)程序管理器,DB驅(qū)動(dòng)程序,ODBC數(shù)據(jù)源。 (3)ODBC接口:應(yīng)用程序基本流程,ODBC句柄,ODBC連接,SQL語(yǔ)句的執(zhí)行。ODBC兩套符合性級(jí)別。典型的DB應(yīng)用系統(tǒng)開(kāi)發(fā)工具。 (4)JDBC的基本功能,JDBC的結(jié)構(gòu),JDBC接口。 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)3前 言v 對(duì)于那些相對(duì)獨(dú)立的軟件供應(yīng)商而言,經(jīng)常要為每一個(gè)DBMS編寫一個(gè)版本的應(yīng)用程序,或者為每個(gè)要訪問(wèn)的DBMS編寫針對(duì)DBMS的代碼。這
2、就意味著,大量的資源都耗在了編寫和維護(hù)DB的訪問(wèn)上,更不用說(shuō)應(yīng)用程序了。此時(shí)應(yīng)用程序的評(píng)價(jià)標(biāo)準(zhǔn)不再是質(zhì)量,而是它能否在給定的DBMS中訪問(wèn)數(shù)據(jù)庫(kù)。v 這就需要開(kāi)放的數(shù)據(jù)庫(kù)連接,就是人們需要用一種新的方法來(lái)訪問(wèn)不同的數(shù)據(jù)庫(kù)。為此,在C/S系統(tǒng)中必須廣泛使用中間件技術(shù),以隱藏各種復(fù)雜性,屏蔽各種系統(tǒng)之間的差異。ODBC技術(shù)和JDBC技術(shù)就是這種優(yōu)秀的中間件技術(shù)。 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)410.1.1 中間件的定義v定義10.1 中間件(middleware)是分布式環(huán)境中保證操作系統(tǒng)、通信協(xié)議、數(shù)據(jù)庫(kù)等之間進(jìn)行對(duì)話、互操作的軟件系統(tǒng)。數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)510.2.2
3、 中間件的作用v 中間件的作用是保證網(wǎng)絡(luò)中各部件(軟件和硬件)之間透明地連接,即隱藏網(wǎng)絡(luò)部件的異構(gòu)性,尤其保證不同網(wǎng)絡(luò)、不同DBMS和某些訪問(wèn)語(yǔ)言的透明性,即下面三個(gè)透明性。v網(wǎng)絡(luò)透明性:能支持所有類型的網(wǎng)絡(luò) 。v服務(wù)器透明性:不管服務(wù)器上的DBMS是何種型號(hào)(ORACLE、SYBASE、DB2等),一個(gè)好的中間件都能通過(guò)標(biāo)準(zhǔn)的SQL語(yǔ)言與不同DBMS上的SQL語(yǔ)言連接起來(lái)。 語(yǔ)言透明性:客戶機(jī)可用任何開(kāi)發(fā)語(yǔ)言進(jìn)行發(fā)送請(qǐng)求和接受回答,被調(diào)用的功能應(yīng)該像語(yǔ)言那樣也是獨(dú)立的。 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)610.2.1 ODBC概念圖10.1 采用API的應(yīng)用編程 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章
4、 中間件技術(shù)710.2.2 ODBC的體系結(jié)構(gòu)(一)圖10.2 ODBC的分層體系結(jié)構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)810.2.2 ODBC的體系結(jié)構(gòu)(二)v應(yīng)用程序的主要功能是:調(diào)用ODBC函數(shù),遞交SQL語(yǔ)句給DBMS,檢索出結(jié)果,并進(jìn)行處理。 v驅(qū)動(dòng)程序管理器是一個(gè)動(dòng)態(tài)連接庫(kù)(DLL),用于連接各種DBS的DBMS驅(qū)動(dòng)程序(如Oracle、Foxpro、Sybase等驅(qū)動(dòng)程序),管理應(yīng)用程序和DBMS驅(qū)動(dòng)程序之間的交互作用(通信)。v應(yīng)用程序通過(guò)調(diào)用驅(qū)動(dòng)程序所支持的函數(shù)來(lái)操縱數(shù)據(jù)庫(kù)。驅(qū)動(dòng)程序也是一個(gè)動(dòng)態(tài)連接庫(kù)(DLL)。 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)910.2.2 ODBC
5、的體系結(jié)構(gòu)(三)圖10.3 網(wǎng)絡(luò)環(huán)境下基于單層驅(qū)動(dòng)程序的ODBC結(jié)構(gòu) 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)1010.2.2 ODBC的體系結(jié)構(gòu)(四)圖10.4 基于多層驅(qū)動(dòng)程序的ODBC結(jié)構(gòu)(兩層結(jié)構(gòu)) 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)1110.2.2 ODBC的體系結(jié)構(gòu)(五)v基于網(wǎng)關(guān)機(jī)制的多層驅(qū)動(dòng)程序的ODBC結(jié)構(gòu) 圖10.4 基于網(wǎng)關(guān)機(jī)制的多層驅(qū)動(dòng)程序ODBC結(jié)構(gòu)(三層結(jié)構(gòu)) 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)1210.2.2 ODBC的體系結(jié)構(gòu)(六)v用戶數(shù)據(jù)源:用戶創(chuàng)建的數(shù)據(jù)源,稱為“用戶數(shù)據(jù)源”。此時(shí)只有創(chuàng)建者才能使用,并且只能在所定義的機(jī)器上運(yùn)行。任何用戶都不能使用其他用戶
6、創(chuàng)建的用戶數(shù)據(jù)源。v系統(tǒng)數(shù)據(jù)源:所有用戶和在Windows NT下以服務(wù)方式運(yùn)行的應(yīng)用程序均可使用系統(tǒng)數(shù)據(jù)源。v文件數(shù)據(jù)源:文件數(shù)據(jù)源是ODBC 3.0以上版本增加的一種數(shù)據(jù)源,可用于企業(yè)用戶,ODBC驅(qū)動(dòng)程序也安裝在用戶的計(jì)算機(jī)上。數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)1310.2.3 ODBC的特性vODBC是一個(gè)調(diào)用層的接口 vODBC定義了標(biāo)準(zhǔn)的SQL語(yǔ)法 vODBC提供一個(gè)驅(qū)動(dòng)程序管理器來(lái)管理并同時(shí)訪問(wèn)多個(gè)DBMS系統(tǒng) 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)1410.3.1 ODBC應(yīng)用程序的基本流程圖10.6 ODBC應(yīng)用程序的基本流程 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)1510.3
7、.2 ODBC句柄(一)圖10.7 三種句柄之間的關(guān)系 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)1610.3.2 ODBC句柄(二)henvhdbchstmt環(huán)境句柄(定義DB應(yīng)用環(huán)境)連接句柄(定義一個(gè)DB連接)語(yǔ)句句柄(定義一個(gè)SQL語(yǔ)句)圖10.8 各種句柄之間的關(guān)系 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)1710.3.3 數(shù)據(jù)源的連接與斷開(kāi)(1) 連接數(shù)據(jù)源的函數(shù)連接數(shù)據(jù)源的函數(shù)有三個(gè),但最有效、最通用的是下面一種格式:SQLConnect(hdbc,szDSN,cbDSN,szUID,cbUID,szAuthStr,cbAuthStr)。其中,參數(shù)hdbc是一個(gè)已經(jīng)分配的連接分配;參數(shù)sz
8、DSN和cbDSN分別表示系統(tǒng)所要連接的數(shù)據(jù)源名稱及其長(zhǎng)度;參數(shù)szUID和cbUID分別表示用戶標(biāo)識(shí)符及其長(zhǎng)度 ;參數(shù)szAuthStr和cbAuthStr分別表示權(quán)限字符串及其長(zhǎng)度(2) 斷開(kāi)數(shù)據(jù)源函數(shù)其格式如下:SQLDisconnect(hdbc)其中,參數(shù)hdbc是要斷開(kāi)的連接句柄。 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)1810.3.4 SQL語(yǔ)句的執(zhí)行(一)main() HENV henv;*說(shuō)明henv是一個(gè)環(huán)境型變量*HDBC hdbc;*說(shuō)明hdbc是一個(gè)連接型變量*HSTMThstmt;*說(shuō)明hstmt是一個(gè)語(yǔ)句句柄變量*RETCODE retcode;*說(shuō)明retcode
9、是一個(gè)返回變量*SQLAllocEnv(&henv);*分配一個(gè)環(huán)境句柄*SQLAllocConnect(henv,&hdbc);*分配一個(gè)連接句柄*SQLConnect(hdbc,學(xué)生,SQL_NTS,NULL,0,NULL,0);*連接數(shù)據(jù)源*SQLAllocStmt(hdbc,&hstmt);*分配一個(gè)語(yǔ)句句柄*retcode=SQLExecDirect(hstmt,SELECT * FROM S,SQL_NTS);*執(zhí)行語(yǔ)句* *結(jié)果集處理*SQLDisconnect(hdbc);*斷開(kāi)數(shù)據(jù)源*SQLFreeStmt(hstmt,SQL_DROP)*釋放一個(gè)語(yǔ)句
10、句柄*SQLFreeConnect(hdbc);*釋放一個(gè)連接句柄*SQLFreeEnv(henv);*當(dāng)應(yīng)用完成后,釋放環(huán)境句柄* 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)1910.3.4 SQL語(yǔ)句的執(zhí)行(二)v有準(zhǔn)備地執(zhí)行SQL語(yǔ)句的函數(shù)v(1) SQL語(yǔ)句預(yù)備函數(shù)其格式如下:SQLPrepare(hstmt,szSqlStr,cbSqlStr)。其中,參數(shù)hstmt是一個(gè)有效的語(yǔ)句句柄,參數(shù)szSqlStr和cbSqlStr分別表示將要執(zhí)行的SQL語(yǔ)句的字符串及其長(zhǎng)度。v (2) SQL語(yǔ)句執(zhí)行函數(shù)其格式如下:SQLExecute(hstmt)。其中參數(shù)hstmt是一個(gè)有效的語(yǔ)句句柄。數(shù)據(jù)
11、庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)2010.3.5 查詢結(jié)果的獲取while(RETCODE_IS_SUCCESSFUL(retcode) retcode=SQLFetch(hstmt);if(RETCODE_IS_SUCCESSFUL(retcode) do rcGetData = SQLGetData(hstmt,1,SQL_C_CHAR,szBuffer,sizeof(szBuffer),&cbValue);DISPLAY_MEMO(szBuffer,cbValue);*顯示* while( rcGetData!=SQL_NO_DATA_FOUND);數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間
12、件技術(shù)2110.4 ODBC的符合性級(jí)別ODBC使得我們能夠訪問(wèn)任何數(shù)據(jù)源而不必修改應(yīng)用程序。但在實(shí)際使用中存在著一些問(wèn)題。由于DBMS廠商提供的SQL不同(不是指形式上,而是功能上有多有少),有的SQL功能在某廠商的DBMS上沒(méi)有實(shí)現(xiàn),則ODBC就不可能為應(yīng)用程序完成這一功能;有的SQL功能是SQL標(biāo)準(zhǔn)新增加的,而DBMS廠商沒(méi)有及時(shí)跟上,則ODBC同樣也無(wú)法完成新功能。對(duì)于具體DBMS不支持的SQL功能,DBMS要通報(bào)給應(yīng)用程序。而從ODBC本身來(lái)講,它最好支持完全的SQL,這樣才能做到應(yīng)用程序不用修改就可以訪問(wèn)不同的數(shù)據(jù)源。數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)2210.4.1 API符合
13、性的三個(gè)級(jí)別v核心級(jí)API v1級(jí)API v2級(jí)API 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)2310.4.2 SQL符合性的三個(gè)級(jí)別v最小級(jí)SQL v核心級(jí)SQL v擴(kuò)展級(jí)SQL 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)2410.4.3 ODBC API與SQL CLI之間的協(xié)調(diào)v Microsoft公司于1991年11月提出了一個(gè)關(guān)于ODBC的體系結(jié)構(gòu),并在1992年發(fā)布了ODBC 1.0規(guī)范,隨后以軟件開(kāi)發(fā)工具包(SDK)形式出版并發(fā)行了這種面向SQL的API。 v 數(shù)據(jù)庫(kù)公司國(guó)際財(cái)團(tuán)SQL Access Group(SAG)和標(biāo)準(zhǔn)化組織XOpen在1992年聯(lián)合出版了一個(gè)規(guī)范,該規(guī)范定義了調(diào)
14、用級(jí)界面(Call Level Interface),CLI)標(biāo)準(zhǔn)。 v 1993年,Microsoft公司推出了ODBC 2.0規(guī)范,并于1994年出版了ODBC 2.0 SDK。 v Microsoft在1998年出版的ODBC 3.0規(guī)范中,作了一些修改,目的是更進(jìn)一步接近SQL標(biāo)準(zhǔn)。v SQL3(即SQL99)的第三部分介紹了SQLCLI。 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)2510.4.4 典型的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開(kāi)發(fā)工具vPowerBilder vDelphi vVisual Basic vDeveloper2000 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)2610.5.1 Java簡(jiǎn)介
15、vJava語(yǔ)言 vJava的工作方式 vJava的特性 vJava的應(yīng)用程序和小程序 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)2710.5.2 JDBC的提出vJDBC是執(zhí)行SQL語(yǔ)句的Java API。JDBC是“Java DataBase Connectivity”(JDBC數(shù)據(jù)庫(kù)連接 )的縮寫。JDBC原來(lái)是Java Soft公司設(shè)計(jì)的Java語(yǔ)言的數(shù)據(jù)庫(kù)訪問(wèn)API。最初的Java語(yǔ)言本身并沒(méi)有訪問(wèn)DB的能力,JDBC是第一個(gè)支持Java語(yǔ)言的標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)API。1996年夏天,Sun公司推出了JDBC工具?,F(xiàn)在JDBC驅(qū)動(dòng)程序已經(jīng)被大多數(shù)主流數(shù)據(jù)庫(kù)所用。vJDBC由一組用Java語(yǔ)言編寫的
16、類與接口組成。vJDBC擴(kuò)充了Java的應(yīng)用范圍,用Java與JDBC API可以發(fā)布一種包含遠(yuǎn)程數(shù)據(jù)庫(kù)信息的Applet(小應(yīng)用程序)的WWW頁(yè)面。數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)2810.5.3 JDBC的基本功能v建立與數(shù)據(jù)庫(kù)的連接v發(fā)送SQL語(yǔ)句v處理結(jié)果數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)2910.5.4 JDBC與CGI的比較圖10.11 通過(guò)JDBC服務(wù)器訪問(wèn)數(shù)據(jù)庫(kù) 圖10.10 CGI腳本的調(diào)用及實(shí)現(xiàn)過(guò)程 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)3010.6.1 JDBC數(shù)據(jù)庫(kù)設(shè)計(jì)方法圖10.12 JDBC兩層應(yīng)用模型圖10.12 JDBC三層應(yīng)用模型數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章
17、中間件技術(shù)3110.6.2 保持一致性的措施v允許將任何查詢字符串傳遞給基礎(chǔ)DBMS驅(qū)動(dòng)器,這意味著應(yīng)用可以自動(dòng)地使用盡可能多的SQL功能,但這會(huì)使某些DBMS系統(tǒng)接收到某種錯(cuò)誤的查詢。v采用ODBC風(fēng)格的方法,提供表示幾種常見(jiàn)的SQL差別的標(biāo)準(zhǔn)JDBC語(yǔ)法。v對(duì)于復(fù)雜應(yīng)用,借助于DatabaseMetaData接口,提供關(guān)于DBMS的描述性信息,使應(yīng)用能適應(yīng)每個(gè)DBMS的需求與能力。數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)3210.6.3 JDBC驅(qū)動(dòng)程序v本地庫(kù)Java實(shí)現(xiàn) v網(wǎng)絡(luò)協(xié)議Java驅(qū)動(dòng)程序 v本地協(xié)議Java驅(qū)動(dòng)程序 vJDBC-ODBC橋驅(qū)動(dòng)程序 數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件
18、技術(shù)3310.7.1 JDBC API的目標(biāo)v為Java定義一個(gè)“調(diào)用層”(call-level)的SQL接口v遵循SQL2標(biāo)準(zhǔn)vJDBC應(yīng)建立在現(xiàn)存的數(shù)據(jù)庫(kù)接口上v必須保證這個(gè)接口與Java系統(tǒng)的其他部分保持一致v使基本的API盡量簡(jiǎn)單v盡量保持強(qiáng)大的、靜態(tài)的類型數(shù)據(jù)庫(kù)系統(tǒng)教程 第10章 中間件技術(shù)3410.7.2 JDBC API接口概貌JDBC接口分為兩個(gè)層次,一個(gè)是面向程序開(kāi)發(fā)人員的JDBC API,另外一個(gè)是底層的JDBC Driver API。一般來(lái)說(shuō),應(yīng)用程序?qū)邮菙?shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)者使用的,驅(qū)動(dòng)程序?qū)邮球?qū)動(dòng)廠家實(shí)現(xiàn)的。對(duì)于應(yīng)用程序開(kāi)發(fā)者來(lái)說(shuō)只要求JDBC API所提供的接口能保證與JDBC相符合。而對(duì)于驅(qū)動(dòng)程序?qū)觿t要負(fù)責(zé)開(kāi)開(kāi)發(fā)數(shù)據(jù)庫(kù)接口和支持JDBC應(yīng)用程序?qū)诱{(diào)用的編碼。每一個(gè)驅(qū)動(dòng)程序?qū)佣急仨殞?shí)現(xiàn)4個(gè)組要的接口,應(yīng)用程序?qū)雍万?qū)動(dòng)程序?qū)佑靡粋€(gè)類橋接。這4個(gè)接口分別是Driver、Connection、Statement和ResultSet。Driver接口建立與數(shù)據(jù)庫(kù)的連接,大多數(shù)應(yīng)用程序中,Driver接口功能是通過(guò)驅(qū)動(dòng)程序管理器(DriverManager)類實(shí)現(xiàn)的,提供給使用者的另一層的抽象。 數(shù)據(jù)庫(kù)系統(tǒng)教程 第1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 飼養(yǎng)烏龜課程設(shè)計(jì)
- 預(yù)算課程設(shè)計(jì)前言
- 誦讀經(jīng)典文化課程設(shè)計(jì)
- 黃河特大橋施工課程設(shè)計(jì)
- 銀行市場(chǎng)營(yíng)銷課程設(shè)計(jì)
- 隧道通風(fēng)與照明課程設(shè)計(jì)
- 音階琶音小組課程設(shè)計(jì)
- 音樂(lè)知識(shí)音程講解課程設(shè)計(jì)
- 齒輪架夾具設(shè)計(jì)課程設(shè)計(jì)
- 教育現(xiàn)代化進(jìn)程中實(shí)驗(yàn)教學(xué)的技術(shù)轉(zhuǎn)型與探索
- 廣東省惠州市2024-2025學(xué)年高一上學(xué)期期末考試英語(yǔ)試題(含答案)
- 醫(yī)院骨科2025年帶教計(jì)劃(2篇)
- 環(huán)境保護(hù)應(yīng)急管理制度執(zhí)行細(xì)則
- 2024-2030年中國(guó)通航飛行服務(wù)站(FSS)行業(yè)發(fā)展模式規(guī)劃分析報(bào)告
- 機(jī)械制造企業(yè)風(fēng)險(xiǎn)分級(jí)管控手冊(cè)
- 地系梁工程施工方案
- 藏文基礎(chǔ)-教你輕輕松松學(xué)藏語(yǔ)(西藏大學(xué))知到智慧樹(shù)章節(jié)答案
- 2024電子商務(wù)平臺(tái)用戶隱私保護(hù)協(xié)議3篇
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 英語(yǔ) 含答案
- 醫(yī)學(xué)教程 常見(jiàn)體表腫瘤與腫塊課件
- 內(nèi)分泌系統(tǒng)異常與虛勞病關(guān)系
評(píng)論
0/150
提交評(píng)論