版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面向?qū)ο蟪绦蛟O(shè)計(jì)項(xiàng)目教程本章學(xué)習(xí)目標(biāo):●
了解JDBC概念以及驅(qū)動(dòng)類型●
掌握使用JDBC連接MySQL數(shù)據(jù)庫(kù)的基本步驟●
掌握數(shù)據(jù)庫(kù)環(huán)境的搭建●
掌握使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)的步驟●
掌握使用JavaAPI操作數(shù)據(jù)庫(kù)●
掌握數(shù)據(jù)庫(kù)事務(wù)的使用項(xiàng)目14實(shí)現(xiàn)MySQL數(shù)據(jù)庫(kù)連接任務(wù)1part認(rèn)識(shí)JDBCJDBC(JavaDatabaseConnectivity,Java數(shù)據(jù)庫(kù)連接)是一種執(zhí)行SQL語(yǔ)句的JavaAPI。程序可以通過(guò)JDBCAPI連接到關(guān)系數(shù)據(jù)庫(kù),并使用SQL結(jié)構(gòu)化語(yǔ)言來(lái)完成對(duì)數(shù)據(jù)庫(kù)的增、刪、改、查等操作。JDBC驅(qū)動(dòng)示意圖如圖14.1所示。1.1JDBC簡(jiǎn)介JDBC應(yīng)用程序可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)和操作,JDBC訪問(wèn)數(shù)據(jù)庫(kù)時(shí)主要完成以下工作:
●建立與數(shù)據(jù)庫(kù)的連接;
●執(zhí)行SQL語(yǔ)句;
●獲取執(zhí)行結(jié)果。
數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序是JDBC程序和數(shù)據(jù)庫(kù)之間的轉(zhuǎn)換層,數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序負(fù)責(zé)將JDBC調(diào)用映射成特定的數(shù)據(jù)庫(kù)調(diào)用,JDBC訪問(wèn)示意圖如圖14.2所示。1.2JDBC驅(qū)動(dòng)JDBC驅(qū)動(dòng)程序有以下4種類型:
●JDBC-ODBC橋:是最早實(shí)現(xiàn)的JDBC驅(qū)動(dòng)程序,主要目的是快速推廣JDBC。ODBC(OpenDatabaseConnectivity,開放數(shù)據(jù)庫(kù)連接)是通過(guò)一組通用的API訪問(wèn)不同的數(shù)據(jù)庫(kù)管理系統(tǒng),也需要各數(shù)據(jù)庫(kù)廠商提供相應(yīng)的驅(qū)動(dòng)程序,而ODBC則對(duì)這些驅(qū)動(dòng)程序進(jìn)行管理。
●本地API驅(qū)動(dòng):直接將JDBCAPI映射成數(shù)據(jù)庫(kù)特定的客戶端API,包含特定的數(shù)據(jù)庫(kù)本地代碼,用于訪問(wèn)特定數(shù)據(jù)庫(kù)的客戶端?!窬W(wǎng)絡(luò)協(xié)議驅(qū)動(dòng):將JDBC調(diào)用翻譯成中間件供應(yīng)商的協(xié)議,然后再由中間件服務(wù)器翻譯成數(shù)據(jù)庫(kù)訪問(wèn)協(xié)議。●本地協(xié)議驅(qū)動(dòng):是純Java編寫的,可以直接連接到數(shù)據(jù)庫(kù)。JDBC驅(qū)動(dòng)14.1.2JDBCAPI提供了一組用于與數(shù)據(jù)庫(kù)進(jìn)行通信的接口和類,這些接口和類都定義在java.sql包中,常用的接口和類如表14-1所示。1.3JDBC
APIJDBC
API1.DriverManager類DriverManager是數(shù)據(jù)庫(kù)驅(qū)動(dòng)管理類,用于管理一組JDBC驅(qū)動(dòng)程序的基本服務(wù)。應(yīng)用程序和數(shù)據(jù)庫(kù)之間可以通過(guò)DriverManager建立連接,其常用的靜態(tài)方法如表14-2所示。JDBC
API1.32.Connection接口Connection接口用于連接數(shù)據(jù)庫(kù),每個(gè)Connection對(duì)象代表一個(gè)數(shù)據(jù)庫(kù)連接會(huì)話,要想訪問(wèn)數(shù)據(jù)庫(kù),必須先獲得數(shù)據(jù)庫(kù)連接。一個(gè)應(yīng)用程序可與單個(gè)數(shù)據(jù)庫(kù)建立一個(gè)或多個(gè)連接,也可以與多個(gè)數(shù)據(jù)庫(kù)建立連接。Connection接口中常用的方法如表14-3所示。JDBC
API1.33.Statement接口Statement接口一般用于執(zhí)行SQL語(yǔ)句。在JDBC中要執(zhí)行SQL查詢語(yǔ)句的方式有一般查詢(Statement)、參數(shù)查詢(PreparedStatement)和存儲(chǔ)過(guò)程(CallableStatement)三種方式。Connection接口中提供的createStatement()、prepareStatement()和prepareCall()方法分別返回一個(gè)Statement對(duì)象,PreparedStatement對(duì)象和CallableStatement對(duì)象。Statement、PreparedStatement和CallableStatement三個(gè)接口具有繼承關(guān)系,其中PreparedStatement是Statement的子接口,而CallableStatement又是PreparedStatement的子接口。Statement接口的主要功能是將SQL語(yǔ)句傳送給數(shù)據(jù)庫(kù),并返回SQL語(yǔ)句的執(zhí)行結(jié)果。Statement提交的SQL語(yǔ)句是靜態(tài)的,不需要接收任何參數(shù),SQL語(yǔ)句可以包含以下三種類型的語(yǔ)句:
●SELECT查詢語(yǔ)句;
●DML語(yǔ)句,如INSERT、UPDATE或DELETE;
●DDL語(yǔ)句,如CREATETABLE和DROPTABLE。JDBC
API1.3Statement接口中常用的方法及功能如表14-4所示。JDBC
API1.34.ResultSet接口ResultSet接口用于封裝結(jié)果集對(duì)象,該對(duì)象包含訪問(wèn)查詢結(jié)果的方法。使用Statement中的executeQuery()方法可以返回一個(gè)ResultSet結(jié)果集的對(duì)象,該對(duì)象封裝了所有符合查詢條件的記錄。ResultSet接口中常用的方法如表14-5所示。JDBC
API1.3ResultSet對(duì)象具有指向當(dāng)前數(shù)據(jù)行的游標(biāo)。最初游標(biāo)位于第一行之前,每調(diào)用一次next()方法,游標(biāo)會(huì)自動(dòng)向下移一行,從而可以從上到下依次獲取所有數(shù)據(jù)行。常用的SQL數(shù)據(jù)類型和Java數(shù)據(jù)類型之間的對(duì)應(yīng)關(guān)系如表14-6所示。JDBC
API1.3任務(wù)2part數(shù)據(jù)庫(kù)環(huán)境搭建2.1創(chuàng)建數(shù)據(jù)庫(kù)表
本章JDBC數(shù)據(jù)庫(kù)訪問(wèn)基于MySQL數(shù)據(jù)庫(kù),因此所有的代碼及環(huán)境都是基于MySQL數(shù)據(jù)庫(kù)的。在進(jìn)行數(shù)據(jù)庫(kù)訪問(wèn)操作之前,需要先創(chuàng)建數(shù)據(jù)庫(kù)和表并錄入測(cè)試數(shù)據(jù)。在root用戶下創(chuàng)建student數(shù)據(jù)庫(kù),并在該庫(kù)下創(chuàng)建t_user表,并添加測(cè)試數(shù)據(jù),其SQL代碼如下所示。創(chuàng)建數(shù)據(jù)庫(kù)表創(chuàng)建數(shù)據(jù)庫(kù)表
【代碼14.1】student.sqlCREATEDATABASE`student`;CREATETABLE`t_user`(`Id`int(11)NOTNULLAUTO_INCREMENT,`sid`varchar(20)DEFAULTNULL,`name`varchar(20)DEFAULTNULL,`password`varchar(20)DEFAULTNULL,`sex`varchar(20)DEFAULTNULL,`major`varchar(20)DEFAULTNULL,`hobby`varchar(20)DEFAULTNULL,PRIMARYKEY(`Id`));#添加測(cè)試數(shù)據(jù)INSERTINTO`t_user`VALUES(19,'159110909','向守超','111','男','物聯(lián)網(wǎng)工程','籃球足球'),(20,'159110901','張恒','123','男','物聯(lián)網(wǎng)工程','籃球足球');
創(chuàng)建完庫(kù)student、表t_user和添加完數(shù)據(jù)以后,在MySQL-Front圖形化界面工具中打開,其表中的數(shù)據(jù)如圖14.3所示。2.2設(shè)置MySQL驅(qū)動(dòng)類Java項(xiàng)目在訪問(wèn)MySQL數(shù)據(jù)庫(kù)時(shí),需要在項(xiàng)目中設(shè)置MySQL驅(qū)動(dòng)類路徑,即將MySQL數(shù)據(jù)庫(kù)所提供的JDBC驅(qū)動(dòng)程序(mysql-connector-java-5.1.12-bin0)導(dǎo)入到工程中。mysql-connector-java-5.1.12-bin.jar驅(qū)動(dòng)文件可在網(wǎng)絡(luò)上直接下載,當(dāng)然也可以下載其他的版本。
配置MySQL數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序有兩種方法:一種方法是將驅(qū)動(dòng)程序配置到CLASSPATH中,與配置JDK的環(huán)境變量類似,這種方法的配置將對(duì)本機(jī)中所有創(chuàng)建的項(xiàng)目起作用,但程序員一般不用這種方法;第二種方法是在基礎(chǔ)開發(fā)工具Eclipse中選中項(xiàng)目,右鍵單擊,在彈出的快捷菜單中選擇“Properties→JavaBuildPath→libraries→AddExternalJARs…”命令,在彈出的對(duì)話框中,選擇mysql-connector-java-5.1.12-bin.jar文件。如圖14.4所示。設(shè)置MySQL驅(qū)動(dòng)類任務(wù)3part訪問(wèn)數(shù)據(jù)庫(kù)使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)的步驟:●加載數(shù)據(jù)庫(kù)驅(qū)動(dòng);●建立數(shù)據(jù)連接;●創(chuàng)建Statement對(duì)象;●執(zhí)行SQL語(yǔ)句;●訪問(wèn)結(jié)果集;數(shù)據(jù)庫(kù)訪問(wèn)本節(jié)概述3.1加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)
通常使用Class類的forName()靜態(tài)方法來(lái)加載數(shù)據(jù)庫(kù)的驅(qū)動(dòng),其語(yǔ)法格式如下所示://加載驅(qū)動(dòng)Class.forName(數(shù)據(jù)庫(kù)驅(qū)動(dòng)類名);
例如:Class.forName("com.mysql.jdbc.Driver");//加載MySQL驅(qū)動(dòng)
需要注意的是:不同的數(shù)據(jù)庫(kù)其數(shù)據(jù)庫(kù)驅(qū)動(dòng)類是不同的,例如:Oracle數(shù)據(jù)庫(kù)的驅(qū)動(dòng)類是oracle.jdbc.driver.OracleDriver,而MySQL的數(shù)據(jù)庫(kù)驅(qū)動(dòng)類是com.mysql.jdbc.Driver。數(shù)據(jù)庫(kù)廠商在提供數(shù)據(jù)庫(kù)驅(qū)動(dòng)(通常是一個(gè)或幾個(gè)jar文件)時(shí),會(huì)有相應(yīng)的文檔說(shuō)明。加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)3.2建立數(shù)據(jù)庫(kù)連接
在使用JDBC操作數(shù)據(jù)庫(kù)之前,需要先創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)連接,使用DriverManager類的getConnection()靜態(tài)方法來(lái)獲取數(shù)據(jù)庫(kù)連接對(duì)象,其語(yǔ)法格式如下所示:DriverManager.getConnection(Stringurl,Stringuser,Stringpass);
其中,getConnection()方法有三個(gè)參數(shù),具體如下:
●url:數(shù)據(jù)庫(kù)連接字符串,遵循的格式是“jdbc:驅(qū)動(dòng):其他”,不同的數(shù)據(jù)庫(kù)連接的URL也有所不同。
●user:連接數(shù)據(jù)庫(kù)的用戶名;
●pass:密碼。建立數(shù)據(jù)庫(kù)連接3.3創(chuàng)建Statement對(duì)象
對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作或訪問(wèn)時(shí),需要使用SQL語(yǔ)句。在Java語(yǔ)言中,SQL語(yǔ)句是通過(guò)Statement對(duì)象進(jìn)行封裝后,發(fā)送給數(shù)據(jù)庫(kù)。Statement對(duì)象不是通過(guò)Statement類直接創(chuàng)建的,而是通過(guò)Connection對(duì)象所提供的方法來(lái)創(chuàng)建各種Statement對(duì)象。
通過(guò)Connection對(duì)象來(lái)獲得Statement的方法有以下三種:
●createStatement()方法:創(chuàng)建一個(gè)基本的Statement對(duì)象;
●prepareStatement(Stringsql)方法:根據(jù)參數(shù)化的SQL語(yǔ)句創(chuàng)建一個(gè)預(yù)編譯的PreparedStatement對(duì)象;
●prepareCall(Stringsql)方法:根據(jù)SQL語(yǔ)句來(lái)創(chuàng)建一個(gè)CallableStatement對(duì)象,用于調(diào)用數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程。
例如://創(chuàng)建Statment對(duì)象Statementstmt=conn.createStatement();創(chuàng)建Statement對(duì)象3.4執(zhí)行SQL語(yǔ)句
獲取Statement對(duì)象之后,就可以調(diào)用該對(duì)象的不同方法來(lái)執(zhí)行SQL語(yǔ)句。所有的Statement都有三種執(zhí)行SQL語(yǔ)句的方法,具體使用哪一種方法由SQL語(yǔ)句產(chǎn)生的結(jié)果來(lái)決定:
●executeQuery()方法:只能執(zhí)行查詢語(yǔ)句,例如SELECT語(yǔ)句,用于產(chǎn)生單個(gè)結(jié)果集;
●executeUpdate()和executeLargeUpdate()方法:用于執(zhí)行DML和DDL語(yǔ)句,執(zhí)行DML(INSERT、UPDATE或DELETE語(yǔ)句)時(shí)返回受SQL語(yǔ)句所影響的行數(shù)(整數(shù)值),而執(zhí)行DDL語(yǔ)句(CREATETABLE、DROPTABLE等)返回值總為0;●execute()方法:可以執(zhí)行任何SQL語(yǔ)句,此方法比較特殊,也比較麻煩,返回結(jié)果為多個(gè)結(jié)果集、多個(gè)更新計(jì)數(shù)或二者的組合。通常不建議使用該方法,只有在不知道執(zhí)行SQL語(yǔ)句會(huì)產(chǎn)生什么結(jié)果或可能有多種類型結(jié)果的情況下才會(huì)使用。如果SQL語(yǔ)句運(yùn)行后能產(chǎn)生結(jié)果集,Statement對(duì)象則將結(jié)果集封裝成ResultSet對(duì)象并返回。下述代碼調(diào)用Statement對(duì)象的executeQuery()方法來(lái)執(zhí)行SQL查詢語(yǔ)句,并返回一個(gè)ResultSet結(jié)果集對(duì)象。例如:執(zhí)行SQL查詢語(yǔ)句并返回結(jié)果集ResultSetrs=smt.executeQuery("SELECT*FROMt_user");3.5訪問(wèn)結(jié)果集SQL的查詢結(jié)果使用ResultSet封裝,ResultSet結(jié)果集包含了滿足SQL查詢條件的所有的行,使用getXXX()方法對(duì)結(jié)果集中的數(shù)據(jù)進(jìn)行訪問(wèn)。
當(dāng)使用getXXX()方法訪問(wèn)結(jié)果集中的數(shù)據(jù)時(shí),可通過(guò)列索引或列名來(lái)獲取游標(biāo)所指行中的列數(shù)據(jù),其語(yǔ)法格式如下;getXXX(列索引)
或getXXX(“列名”)
例如:循環(huán)輸出結(jié)果集中第三列數(shù)據(jù)。while(rs.next()){ System.out.println(rs.getString(3));}
或while(rs.next()){ System.out.println(rs.getString("name"));}訪問(wèn)結(jié)果集
需要注意的是:在使用getXXX()方法來(lái)獲得數(shù)據(jù)庫(kù)表中的對(duì)應(yīng)字段的數(shù)據(jù)時(shí),盡可能使用序列號(hào)參數(shù),這樣可以提高效率。除Blob類型外,其他任意類型的字段都可以通過(guò)getString()方法來(lái)獲取,因?yàn)樗袛?shù)據(jù)類型都可以自動(dòng)轉(zhuǎn)換成字符串。
當(dāng)數(shù)據(jù)庫(kù)操作執(zhí)行完畢或退出應(yīng)用前,需將數(shù)據(jù)庫(kù)訪問(wèn)過(guò)程中建立的對(duì)象按順序關(guān)閉,防止系統(tǒng)資源浪費(fèi)。關(guān)閉的次序是:
①關(guān)閉結(jié)果集:rs.close();
②關(guān)閉Statement對(duì)象:stmt.close();
③關(guān)閉連接:conn.close();
3.5任務(wù)4part操作數(shù)據(jù)庫(kù)4.1execute()方法Statement接口的execute()方法幾乎可以執(zhí)行任何SQL語(yǔ)句,如果不清楚SQL語(yǔ)句的類型,則只能通過(guò)使用execute()方法來(lái)執(zhí)行SQL語(yǔ)句。
使用execute()方法執(zhí)行SQL語(yǔ)句的返回值是boolean值,表明執(zhí)行該SQL語(yǔ)句是否返回了ResultSet對(duì)象:
●當(dāng)返回值為true時(shí),可以使用Statement的getResultSet()方法,來(lái)獲取execute()方法執(zhí)行SQL查詢語(yǔ)句所返回的ResultSet對(duì)象;
●當(dāng)返回值為false時(shí),可以使用getUpdateCount()方法,來(lái)獲取execute()方法執(zhí)行DML語(yǔ)句所影響的行數(shù)。
4.2executeUpdate()方法executeUpdate()和executeLargeUpdate()方法用于執(zhí)行DDL和DML語(yǔ)句,其中executeLargeUpdate()方法是Java8新增的方法,是增強(qiáng)版的executeUpdate()方法。executeLargeUpdate()方法的返回值類型為long,當(dāng)DML語(yǔ)句影響的記錄超過(guò)Integer.MAX_VALUE時(shí),建議使用該方法。
4.3PreparedStatement接口PreparedStatement接口繼承Statement接口,該接口具有以下兩個(gè)特點(diǎn):
●PreparedStatement對(duì)象中所包含的SQL語(yǔ)句將進(jìn)行預(yù)編譯,當(dāng)需要多次執(zhí)行同一條SQL語(yǔ)句時(shí),直接執(zhí)行預(yù)先編譯好的語(yǔ)句,其執(zhí)行速度比Statement對(duì)象快;
●PreparedStatement可用于執(zhí)行動(dòng)態(tài)的SQL語(yǔ)句,即在SQL語(yǔ)句中提供參數(shù),大大提高了程序的靈活性和執(zhí)行效率。
動(dòng)態(tài)SQL語(yǔ)句使用“?”作為動(dòng)態(tài)參數(shù)的占位符,示例如下所示。
例如:參數(shù)化的動(dòng)態(tài)SQL語(yǔ)句,創(chuàng)建PreparedStatement對(duì)象StringinsertSql="INSERTINTOuserdetails(sid,name,password,sex)VALUES(?,?,?,?)";PreparedStatementpstmt=conn.prepareStatement(insertSql);PreparedStatement接口
在執(zhí)行帶參數(shù)的SQL語(yǔ)句前,必須對(duì)“?”占位符參數(shù)進(jìn)行賦值。PreparedStatement接口中提供了大量的setXXX()方法,通過(guò)占位符的索引完成對(duì)輸入?yún)?shù)的賦值,根據(jù)參數(shù)的類型來(lái)選擇對(duì)應(yīng)的setXXX()方法,PreparedStatement接口中提供的常用setXXX()方法如表14-7所示。4.3任務(wù)5part處理數(shù)據(jù)庫(kù)事務(wù)事務(wù)具有ACID四個(gè)特性:
●原子性(Atomicity):事務(wù)是應(yīng)用中的最小執(zhí)行單位,就如原子是自然界的最小顆粒一樣,具有不可再分的特性。事務(wù)中的全部操作要么全部完成,要么都不執(zhí)行。
●一致性(Consistency):事務(wù)執(zhí)行之前和執(zhí)行之后,數(shù)據(jù)庫(kù)都必須處于一致性狀態(tài),即從執(zhí)行前的一個(gè)一致?tīng)顟B(tài)變?yōu)榱硪粋€(gè)一致性的狀態(tài)。
●隔離性(Isolation):各個(gè)事務(wù)的執(zhí)行互不干擾,任意一個(gè)事務(wù)的內(nèi)部操作對(duì)其他并發(fā)事務(wù)都是隔離的,即并發(fā)執(zhí)行的事務(wù)之間不能看到對(duì)方的中間狀態(tài),并發(fā)事務(wù)之間是互不影響的。
●持久性(Durability):事務(wù)一旦提交,對(duì)數(shù)據(jù)庫(kù)所做的任何改變都永久地記錄到存儲(chǔ)器中,即保存到物理數(shù)據(jù)庫(kù)中,不被丟失。事務(wù)處理
事務(wù)處理過(guò)程中會(huì)涉及到事務(wù)的提交、中止和回滾三個(gè)概念?!笆聞?wù)提交”是指成功執(zhí)行完畢事務(wù),事務(wù)提交又分顯示提交和自動(dòng)提交兩種;“事務(wù)中止”是指未能成功完成事務(wù),執(zhí)行中斷;“事務(wù)回滾”對(duì)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025山西省太原市公務(wù)員考試數(shù)量關(guān)系專項(xiàng)練習(xí)題及完整答案1套
- 植物檢疫工安全文化考核試卷含答案
- 吉他制作工班組評(píng)比競(jìng)賽考核試卷含答案
- 灌排工程工保密水平考核試卷含答案
- 坯布縫接工測(cè)試驗(yàn)證競(jìng)賽考核試卷含答案
- 空調(diào)器制造工安全教育測(cè)試考核試卷含答案
- 2024年湖北民族大學(xué)輔導(dǎo)員招聘考試真題匯編附答案
- 2024年閩江師范高等專科學(xué)校輔導(dǎo)員考試參考題庫(kù)附答案
- 2024年那曲地區(qū)特崗教師招聘真題匯編附答案
- 2024年重慶市(75所)輔導(dǎo)員招聘考試真題匯編附答案
- 人工搬運(yùn)培訓(xùn)課件
- 建筑施工異常工況安全處置指南
- 2025年榆林神木市信息產(chǎn)業(yè)發(fā)展集團(tuán)招聘?jìng)淇碱}庫(kù)(35人)及答案詳解(新)
- 2025年公務(wù)員時(shí)事政治熱點(diǎn)試題解析+答案
- 免疫聯(lián)合治療的生物樣本庫(kù)建設(shè)
- 項(xiàng)目管理溝通矩陣及問(wèn)題跟進(jìn)器
- 交通運(yùn)輸企業(yè)人力資源管理中存在的問(wèn)題及對(duì)策
- 蒂森電梯安全質(zhì)量培訓(xùn)
- 設(shè)備供貨進(jìn)度計(jì)劃及保證措施
- 純化水取樣課件
- 2025年四川單招護(hù)理試題及答案
評(píng)論
0/150
提交評(píng)論