




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2021-12-2612021-12-26第 2 頁v深入了解深入了解JDBC訪問各種數(shù)據庫的驅動程序訪問各種數(shù)據庫的驅動程序的模式的模式v熟練掌握利用熟練掌握利用JDBC訪問數(shù)據庫的步驟訪問數(shù)據庫的步驟v熟練掌握熟練掌握JDBC完成各種數(shù)據庫操作完成各種數(shù)據庫操作v熟練掌握熟練掌握Java API來編寫數(shù)據庫應用程序來編寫數(shù)據庫應用程序http:/ 本章學習要點本章學習要點2021-12-2632021-12-26第 4 頁10.1.1 JBDC的用途v JDBC即即Java 數(shù)據庫連接數(shù)據庫連接 (Java Database Connectivity)。 vJDBC為數(shù)據庫及其工具開發(fā)人員
2、提供了一個標準的為數(shù)據庫及其工具開發(fā)人員提供了一個標準的API,使,使他們能夠用純他們能夠用純 Java API 來編寫數(shù)據庫應用程序。來編寫數(shù)據庫應用程序。 v在在JDK的早期版本中,的早期版本中,JDBC只是一個可選部件,到了只是一個可選部件,到了JDK1.1公布時,公布時,SQL類包(也就是類包(也就是JDBC API)就成為)就成為Java語言的標準部件。語言的標準部件。 vJDBC擴展了擴展了Java的功能。例如,使用的功能。例如,使用Java和和JDBC API可以可以發(fā)布含有發(fā)布含有Applet的網頁,而該的網頁,而該Applet的信息可能來自遠程數(shù)的信息可能來自遠程數(shù)據庫。據庫
3、。v使用使用JDBC,使信息的管理和傳播變得容易和經濟。,使信息的管理和傳播變得容易和經濟。 2021-12-26第 5 頁10.1.2 從ODBC到JDBCv1. ODBC的結構模型的結構模型 ODBC的結構包括的結構包括4個主要部分:應用程序接口、驅動程序管個主要部分:應用程序接口、驅動程序管理器、數(shù)據庫驅動程序和數(shù)據源。理器、數(shù)據庫驅動程序和數(shù)據源。 應用程序接口:屏蔽不同的應用程序接口:屏蔽不同的ODBC數(shù)據庫驅動程序之間函數(shù)數(shù)據庫驅動程序之間函數(shù)調用的差別,為用戶提供統(tǒng)一的調用的差別,為用戶提供統(tǒng)一的SQL編程接口。編程接口。 驅動程序管理器:為應用程序裝載數(shù)據庫驅動程序。驅動程序管
4、理器:為應用程序裝載數(shù)據庫驅動程序。 數(shù)據庫驅動程序:實現(xiàn)數(shù)據庫驅動程序:實現(xiàn)ODBC的函數(shù)調用,提供對特定數(shù)據的函數(shù)調用,提供對特定數(shù)據源的源的SQL請求。如果需要,數(shù)據庫驅動程序將修改應用程序請求。如果需要,數(shù)據庫驅動程序將修改應用程序的請求,使得請求符合相關的的請求,使得請求符合相關的DBMS所支持的文法。所支持的文法。數(shù)據源:由用戶想要存取的數(shù)據以及與它相關的操作系統(tǒng)、數(shù)據源:由用戶想要存取的數(shù)據以及與它相關的操作系統(tǒng)、DBMS和用于訪問和用于訪問DBMS的網絡平臺組成。的網絡平臺組成。 2021-12-26第 6 頁10.1.2 從ODBC到JDBCv2. JDBC的誕生的誕生vJa
5、va 剛誕生時,由于沒有一個剛誕生時,由于沒有一個Java語言的數(shù)據庫語言的數(shù)據庫API,編,編程人員不得不在程人員不得不在Java程序中加入程序中加入C語言的語言的ODBC函數(shù)調用。函數(shù)調用。這就使這就使Java的很多優(yōu)秀特性無法充分發(fā)揮,如平臺無關性、的很多優(yōu)秀特性無法充分發(fā)揮,如平臺無關性、面向對象特性等。隨著面向對象特性等。隨著Java語言訪問數(shù)據庫的應用越來越多,語言訪問數(shù)據庫的應用越來越多,對對Java語言訪問數(shù)據庫語言訪問數(shù)據庫API接口的要求也越來越強烈。接口的要求也越來越強烈。v由于由于ODBC有其不足之處,如它不容易使用、沒有面向對象有其不足之處,如它不容易使用、沒有面向對
6、象的特性等,因而的特性等,因而SUN公司開發(fā)了一套公司開發(fā)了一套Java語言的數(shù)據庫應用語言的數(shù)據庫應用程序開發(fā)接口。在程序開發(fā)接口。在JDK的早期版本中,的早期版本中,JDBC只是一個可選只是一個可選部件,到部件,到JDK 1.1公布時,公布時,SQL類包(即類包(即JDBC API)就成為)就成為Java語言的標準部件。語言的標準部件。2021-12-26第 7 頁10.1.3 JDBC的實現(xiàn)及其驅動程序v1. 專用網絡協(xié)議的驅動程序與數(shù)據庫直接通信專用網絡協(xié)議的驅動程序與數(shù)據庫直接通信v這種實現(xiàn)方法是直接使用數(shù)據庫廠商提供的、用專用網絡這種實現(xiàn)方法是直接使用數(shù)據庫廠商提供的、用專用網絡協(xié)
7、議創(chuàng)建的驅動程序,通過它可以直接將協(xié)議創(chuàng)建的驅動程序,通過它可以直接將JDBC API調用轉調用轉換為網絡調用,其結構如圖所示。換為網絡調用,其結構如圖所示。v這種調用方式一般性能比較好,而且也是最簡單實用的方這種調用方式一般性能比較好,而且也是最簡單實用的方法。因為它不需要安裝其他的庫程序或者中間件,幾乎所有法。因為它不需要安裝其他的庫程序或者中間件,幾乎所有的數(shù)據庫廠商都為他們的數(shù)據庫提供了這種的數(shù)據庫廠商都為他們的數(shù)據庫提供了這種JDBC驅動程序,驅動程序,也可以從第三方廠商獲得這些驅動程序。也可以從第三方廠商獲得這些驅動程序。v從網址從網址http:/ API驅動程序數(shù)據源2021-1
8、2-26第 8 頁10.1.3 JDBC的實現(xiàn)及其驅動程序v2. 通過通過JDBC-ODBC橋與橋與ODBC數(shù)據源通信數(shù)據源通信v作為作為JDBC的一部分,的一部分,SUN公司還發(fā)行了一個用于訪問公司還發(fā)行了一個用于訪問ODBC數(shù)數(shù)據源的驅動程序,稱為據源的驅動程序,稱為JDBC-ODBC橋接器。它是用橋接器。它是用jdbcodbc.c1ass和一個用于訪問和一個用于訪問ODBC驅動程序的本地庫來實現(xiàn)驅動程序的本地庫來實現(xiàn)的。該本地庫是一個動態(tài)連接庫的。該本地庫是一個動態(tài)連接庫DLL(JDBCODBC.DLL)。)。v這個驅動程序把這個驅動程序把JDBC的方法映射到的方法映射到ODBC調用上,
9、這樣,調用上,這樣,JDBC就可以和任何可用的就可以和任何可用的ODBC驅動程序進行交互。它使驅動程序進行交互。它使JDBC目前有能力訪問幾乎所有的數(shù)據庫。目前有能力訪問幾乎所有的數(shù)據庫。應用程序JDBC APIJDBC-ODBCODBC層ODBC API數(shù)據源2021-12-26第 9 頁10.1.3 JDBC的實現(xiàn)及其驅動程序v3. 通過部分專用的驅動程序與數(shù)據庫通信通過部分專用的驅動程序與數(shù)據庫通信v這種方式的特點是將這種方式的特點是將JDBC數(shù)據庫調用直接翻譯為廠商專用數(shù)據庫調用直接翻譯為廠商專用的的API,與上述的,與上述的JDBC-ODBC橋接器相比,它的執(zhí)行更有橋接器相比,它的執(zhí)
10、行更有效、更快捷,其模式如圖所示。效、更快捷,其模式如圖所示。應用程序JDBC API驅動程序數(shù)據源專用APIv4. 這種這種JDBC是純是純Java的,直接與數(shù)據庫實例交互。的,直接與數(shù)據庫實例交互。Java API-JDBC-數(shù)據庫協(xié)議-數(shù)據庫2021-12-26102021-12-26第 11 頁 10.3 JDBC API 10.3 JDBC API介紹介紹 v JDBC API所有的類和接口都集中在所有的類和接口都集中在Java.sql和和Javax.sql這兩個包中。這兩個包中。v Java.sql 這個包中包含的類和接口采用的是傳統(tǒng)的這個包中包含的類和接口采用的是傳統(tǒng)的C/S體系
11、結構。它的功能主要針對的是基本數(shù)據庫編體系結構。它的功能主要針對的是基本數(shù)據庫編程服務,如生成連接、執(zhí)行語句以及準備語句和運程服務,如生成連接、執(zhí)行語句以及準備語句和運行批處理查詢等。也有一些其它的高級功能。行批處理查詢等。也有一些其它的高級功能。vJavax.sql 它與它與Java.sql相比,引入了一些相比,引入了一些JDBC編程編程方面的主要的體系結構的改變,并且為連接管理、方面的主要的體系結構的改變,并且為連接管理、分布式事務處理和連接提供了更好的抽象。同時,分布式事務處理和連接提供了更好的抽象。同時,這個包還引入了容器管理的連接緩沖池、分布式事這個包還引入了容器管理的連接緩沖池、分
12、布式事務處理和行集(務處理和行集(row set)等機制。)等機制。2021-12-26第 12 頁10.3 JDBC API10.3 JDBC API介紹介紹v編寫簡單編寫簡單JDBC程序的基本步驟:程序的基本步驟:2021-12-26第 13 頁10.3.1 10.3.1 連接管理連接管理要編寫一個要編寫一個JDBC程序,首先應該將它與數(shù)據庫進行連接。在程序,首先應該將它與數(shù)據庫進行連接。在連接管理這一組中,主要有下面連接管理這一組中,主要有下面2個類和個類和2個接口。個接口。 java.sql.DriverManager 這個類提供了用于管理一個或多個數(shù)這個類提供了用于管理一個或多個數(shù)據
13、庫驅動程序。每個驅動程序都可以連接特定的數(shù)據庫。據庫驅動程序。每個驅動程序都可以連接特定的數(shù)據庫。 java.sql.DriverPropertyInfo 由于每個數(shù)據庫都需要一組屬性由于每個數(shù)據庫都需要一組屬性以獲得一條連接,這個類可用于查找連接所需要的屬性。以獲得一條連接,這個類可用于查找連接所需要的屬性。 java.sql.Driver 這是一個抽象了廠商專用連接協(xié)議的接口,可這是一個抽象了廠商專用連接協(xié)議的接口,可從數(shù)據庫的生產廠商或第三方廠商獲得該接口的實現(xiàn)。從數(shù)據庫的生產廠商或第三方廠商獲得該接口的實現(xiàn)。 java.sql.Connection 這個接口抽象了大部分與數(shù)據庫的交互活
14、這個接口抽象了大部分與數(shù)據庫的交互活動。通過一條連接,可以向數(shù)據庫發(fā)送動。通過一條連接,可以向數(shù)據庫發(fā)送SQL語句以及讀取執(zhí)語句以及讀取執(zhí)行的結果。行的結果。2021-12-26第 14 頁10.3.2 數(shù)據庫訪問當建立連接后,可以發(fā)送當建立連接后,可以發(fā)送SQL語句訪問數(shù)據庫和讀取訪問的語句訪問數(shù)據庫和讀取訪問的結果。結果。 java.sql.Statement 這個接口可在基層連接上執(zhí)行這個接口可在基層連接上執(zhí)行SQL語語句并訪問返回結果。句并訪問返回結果。 java.sql.PreparedStatement 這是這是java.sql.Statement接接口的一個變種,可以使用參數(shù)化口
15、的一個變種,可以使用參數(shù)化SQL語句。語句。 java.sql.CallableStatement 這個接口可運行存儲過程。這個接口可運行存儲過程。 java.sql.ResultSet 這個接口抽象了運行這個接口抽象了運行SQL select語句的語句的結果。它提供了訪問結果的方法??梢允褂眠@個接口來訪問結果。它提供了訪問結果的方法??梢允褂眠@個接口來訪問各記錄中不同的字段。各記錄中不同的字段。2021-12-26152021-12-26第 16 頁10.4.1 JDBC API10.4.1 JDBC API工具工具v1. 注冊數(shù)據庫的驅動程序(注冊數(shù)據庫的驅動程序(driver)vDriv
16、erManager.registerDriver():該方法用于為:該方法用于為DriverManager對象注冊特定的對象注冊特定的Driver對象。對象。DriverManager類的方法利用已注類的方法利用已注冊的驅動器表,確定是否可以連接到某數(shù)據庫的冊的驅動器表,確定是否可以連接到某數(shù)據庫的URL地址。地址。vClass.forName:通過調用方法:通過調用方法 Class.forName顯式地加載驅動顯式地加載驅動程序類。由于這個調用與外部設置無關,因此推薦使用這種加程序類。由于這個調用與外部設置無關,因此推薦使用這種加載驅動程序的方法。以下代碼加載類載驅動程序的方法。以下代碼加載
17、類 acme.db.Driver: Class.forName(acme.db.Driver); v加載驅動程序的第一種方法需要持久的預設環(huán)境。如果對這一加載驅動程序的第一種方法需要持久的預設環(huán)境。如果對這一點不能保證,則調用方法點不能保證,則調用方法 Class.forName 顯式地加載每個驅動顯式地加載每個驅動程序就顯得更為安全。這也是引入特定驅動程序的方法。程序就顯得更為安全。這也是引入特定驅動程序的方法。 2021-12-26第 17 頁10.4.1 JDBC API10.4.1 JDBC API工具工具 v2. 建立數(shù)據庫連接的工具建立數(shù)據庫連接的工具 ( DriverManage
18、r .getConnection) vDriverManager實現(xiàn)了建立數(shù)據庫連接的3個getConnection()方法。每個方法都返回一個Connection對象,但它們接收的參數(shù)不同。v getConnection(String url)方法只接收數(shù)據庫URL作為參數(shù),用當前的Driver對象或已注冊的Driver對象表中某個對象連接指定的數(shù)據庫。該方法中假定構造數(shù)據庫連接時不需要用戶名、口令或其他數(shù)據庫屬性。2021-12-26第 18 頁10.4.1 JDBC API10.4.1 JDBC API工具工具 v getConnection(String url, Properties
19、 info)方法接收兩個參數(shù):數(shù)據庫的URL和連接數(shù)據庫所需各種屬性的Properties對象。第二個參數(shù)必須是Properties對象,它包含連接指定數(shù)據庫所需的所有屬性項。v getConnection(String url, String user, String password)方法接收3個參數(shù),第一個是數(shù)據庫的URL,第二個說明連接數(shù)據所用的用戶名;第三個是DriverManager連接數(shù)據庫時所用的用戶口令。2021-12-26第 19 頁10.4.1 JDBC API10.4.1 JDBC API工具工具v3. Connection對象對象vConnection對象是用于連接數(shù)
20、據庫和Java應用程序的主要對象。利用它可以創(chuàng)建所有的Statement對象,這些Statement對象用于執(zhí)行SQL語句,并從數(shù)據庫中讀取結果。Driver對象的connect()方法和DrvierManager對象的getConnection()方法都可以創(chuàng)建應用程序中的Connection對象。vConnection對象提供應用程序與數(shù)據庫的靜態(tài)連接。除非調用Connection對象的close()方法,或者刪除Connection對象才斷開數(shù)據庫連接,否則保持有效連接。如果數(shù)據庫限制連接的數(shù)目,使用靜態(tài)連接過多就會存在一些問題。這時,最好只在需要時才連接數(shù)據庫,并在操作完畢后斷開數(shù)據庫
21、連接。2021-12-26第 20 頁10.4.1 JDBC API10.4.1 JDBC API工具工具v4. Statement對象對象v連接數(shù)據庫后,要執(zhí)行SQL語句,得到數(shù)據庫的返回結果,必須使用Statement對象。Statement對象與Connection對象一樣不能直接創(chuàng)建,必須通過Connection對象的createStatement()方法返回個Statement對象。v利用Statement對象執(zhí)行SQL查詢。靜態(tài)SQL語句的執(zhí)行不需要接收任何參數(shù)。而動態(tài)SQL語句只有得到指定數(shù)目的參數(shù)后才是完整的SQL語句。靜態(tài)SQL可以是select語句、delete語句、upd
22、ate語句、insert語句,甚至可以是存儲過程的調用語句。update、delete和insert語句不返回任何結果,只修改數(shù)據庫中的數(shù)據。select語句一般都要返回數(shù)據庫中的數(shù)據。vStatement對象的主要方法如表10.1所示。2021-12-26第 21 頁10.4.2 10.4.2 連接數(shù)據庫連接數(shù)據庫v介紹前兩種方法:一種是通過JDBC驅動程序,另一種是通過JDBC-ODBC橋+ODBC驅動與數(shù)據庫進行連接。以下將用兩個實例來詳細說明如何運用這兩種方法與數(shù)據庫通信。v1. 使用使用JDBC驅動程序連接驅動程序連接PointBase數(shù)據庫數(shù)據庫v下面這個例子是在Windows 操
23、作系統(tǒng)下,使用PointBase提供的JDBC驅動連接數(shù)據庫。v【例10.2】 首先,安裝JDBC驅動程序,把含有驅動程序的.zip或者.jar文件放到CLASSPATH下。v然后,創(chuàng)建一個新的數(shù)據庫:運行PointBase,打開DBA菜單,選擇CreateCreate New Database命令,如圖10.5所示,把這個新建的數(shù)據庫取名為DoMiSo。2021-12-26第 22 頁10.4.2 10.4.2 連接數(shù)據庫連接數(shù)據庫2021-12-26第 23 頁10.4.2 10.4.2 連接數(shù)據庫連接數(shù)據庫v準備工作已基本完成,運行下面的程序就可以與PointBase下的DoMiSo數(shù)據
24、庫進行連接了。 程序的代碼2021-12-26第 24 頁10.4.2 10.4.2 連接數(shù)據庫連接數(shù)據庫v2. JDBC-ODBC橋橋+ODBC驅動連接驅動連接Access2000數(shù)據數(shù)據庫庫v在Java的開發(fā)工具包中一般都會自帶JDBC-ODBC橋。在這個例子中,我們使用的操作系統(tǒng)是Windows XP,此系統(tǒng)下Access的ODBC驅動已安裝配置完備。v【例10.3】 首先,創(chuàng)建數(shù)據庫。運行Microsoft Access,創(chuàng)建一個新的數(shù)據庫,取名為Connect。v然后,創(chuàng)建數(shù)據源。打開控制面板,單擊“管理工具”“數(shù)據源(ODBC)”圖標,打開“ODBC數(shù)據源管理器”對話框,單擊“添加
25、”按鈕后彈出“創(chuàng)建新數(shù)據源”對話框,如圖所示。2021-12-26第 25 頁10.4.2 10.4.2 連接數(shù)據庫連接數(shù)據庫v在圖中的在圖中的“名稱名稱”列表框中選擇列表框中選擇“Driver do Microsoft Access”選項,單擊選項,單擊“完成完成”后彈出對話框。后彈出對話框。2021-12-26第 26 頁10.4.2 10.4.2 連接數(shù)據庫連接數(shù)據庫v這個新的數(shù)據源命名為這個新的數(shù)據源命名為Connection,然后單擊,然后單擊“選擇選擇”按鈕,按鈕,找到找到Connect.mdb,單擊,單擊“確定確定”按鈕,至此已成功地創(chuàng)建按鈕,至此已成功地創(chuàng)建數(shù)據源。數(shù)據源。 程
26、序代碼程序代碼 2021-12-26第 27 頁10.4.2 10.4.2 連接數(shù)據庫連接數(shù)據庫vConnectAccess連接數(shù)據源的執(zhí)行結果連接數(shù)據源的執(zhí)行結果 2021-12-26第 28 頁10.4.2 10.4.2 連接數(shù)據庫連接數(shù)據庫v3. 動態(tài)選擇加載驅動程序的類型動態(tài)選擇加載驅動程序的類型v以上所舉的兩個例子都是在程序代碼中預先指定了所要加以上所舉的兩個例子都是在程序代碼中預先指定了所要加載的驅動程序以及要連接的數(shù)據庫等信息。實際上,可以載的驅動程序以及要連接的數(shù)據庫等信息。實際上,可以嘗試一種更一般的形式,即不在程序中固定使用哪一種驅嘗試一種更一般的形式,即不在程序中固定使用
27、哪一種驅動程序,也不固定動程序,也不固定URL等,而是提供一個可視化的用戶界等,而是提供一個可視化的用戶界面,讓用戶通過選擇不同的面,讓用戶通過選擇不同的Driver和和URL來連接不同的數(shù)來連接不同的數(shù)據庫。據庫。v程序代碼程序代碼:2021-12-26第 29 頁10.4.2 10.4.2 連接數(shù)據庫連接數(shù)據庫v連接連接SQL Server數(shù)據庫的有關信息數(shù)據庫的有關信息 2021-12-26第 30 頁10.4.2 10.4.2 連接數(shù)據庫連接數(shù)據庫v連接因特網上另一臺機器上的連接因特網上另一臺機器上的Oracle數(shù)據庫的結果數(shù)據庫的結果 2021-12-26第 31 頁10.5 10.
28、5 小小 結結 vJDBC為在為在Java中開發(fā)數(shù)據庫應用提供了一個良好的工具,中開發(fā)數(shù)據庫應用提供了一個良好的工具,有了有了JDBC API,就不必為訪問每一種數(shù)據庫各寫一個程序,就不必為訪問每一種數(shù)據庫各寫一個程序,也無須擔憂要為不同的平臺編寫不同的應用程序。也無須擔憂要為不同的平臺編寫不同的應用程序。vJDBC也擴展了也擴展了Java的網絡功能。例如,使用的網絡功能。例如,使用Java的網絡功的網絡功能,再加上能,再加上JDBC,無論何時何地都可能訪問遠程數(shù)據庫。,無論何時何地都可能訪問遠程數(shù)據庫。vJDBC訪問數(shù)據庫的方式有多種,粗略劃分可分為兩類:利訪問數(shù)據庫的方式有多種,粗略劃分可分為兩類:利用數(shù)據庫廠家的驅動程序和利用用數(shù)據庫廠家的驅動程序和利用ODBC;若利用前者,可到;若利用前者,可到SUN公司的網站或數(shù)據庫廠商的網站上下載驅動程序,這些公司的網站或數(shù)據庫廠商的網站上下載驅動程序,這些驅動程序已實現(xiàn)為驅動程序已實現(xiàn)為Java API訪問數(shù)據庫的協(xié)議的接口和抽象訪問數(shù)據庫的協(xié)議的接口和抽象類;若利用后者,在類;若利用后者,在Windows平臺已安裝好了平臺已安裝好了ODBC組件,組件,并提供了相應于各種數(shù)據
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 磁性系列過濾器企業(yè)數(shù)字化轉型與智慧升級戰(zhàn)略研究報告
- 青藍工程團隊合作能力提升計劃
- 噪聲系數(shù)測試儀企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 電子平板儀企業(yè)數(shù)字化轉型與智慧升級戰(zhàn)略研究報告
- 冷軋電工鋼板帶企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 園藝專用工具企業(yè)數(shù)字化轉型與智慧升級戰(zhàn)略研究報告
- 電接觸材料企業(yè)數(shù)字化轉型與智慧升級戰(zhàn)略研究報告
- 啤酒機械企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 九年級學生體能測試計劃
- 餐飲行業(yè)員工報銷制度及流程設計
- 道德與法治項目化學習案例
- GB/T 311.2-2013絕緣配合第2部分:使用導則
- GA 1517-2018金銀珠寶營業(yè)場所安全防范要求
- C語言期末考試試題南昌航空大學
- 取消訂單協(xié)議模板(5篇)
- 東風天錦5180勾臂式垃圾車的改裝設計
- 浦發(fā)銀行個人信用報告異議申請表
- 施工進度計劃網絡圖-練習題知識講解
- 防孤島測試報告
- 按摩常用英語
- midas NFX使用指南(八)
評論
0/150
提交評論