




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第1章 Spring 的基本應(yīng)用習(xí)題填空題1. 依賴注入的作用就是在使用 Spring 框架創(chuàng)建對(duì)象時(shí),動(dòng)態(tài)的將其所依賴的對(duì)象注入到】組件中。2. 在使用 Spring 框架之后, 對(duì)象的實(shí)例不再由調(diào)用者來創(chuàng)建, 而是由 【】 來創(chuàng)建, Spring容器會(huì)負(fù)責(zé)控制程序之間的關(guān)系,而不是由調(diào)用者的程序代碼直接控制。3.在 Spring 入門程序中只需將Spring 的 4 個(gè)基礎(chǔ)包以及【】的 JAR 包復(fù)制到 lib 目錄中,并發(fā)布到類路徑下即可。4 .簡單來說,BeanFactory就是一個(gè)管理Bean的工廠,它主要負(fù)責(zé)初始化各種Bean,并調(diào)用它們的【 】方法。5 . Spring開發(fā)所需的
2、JAR包分為兩個(gè)部分:【】和【判斷題1. Spring 中基于構(gòu)造方法的依賴注入通過調(diào)用帶參數(shù)的構(gòu)造方法來實(shí)現(xiàn),每個(gè)參數(shù)代表著一 個(gè)依賴。 ( )2. 通 常 在 Java 項(xiàng) 目 中 , 會(huì) 采 用 通 過 FileSystemXmlApplicationContext 類 來 實(shí) 例 化 ApplicationContext 容器的方式。 ()3. 初學(xué)者學(xué)習(xí) Spring 框架時(shí),只需將Spring 的 4 個(gè)基礎(chǔ)包以及復(fù)制到項(xiàng)目的 lib 目錄,并發(fā)布到類路徑中即可。 ()4. 依賴注入的作用就是在使用 Spring 框架創(chuàng)建對(duì)象時(shí), 動(dòng)態(tài)的將其所依賴的對(duì)象注入到 Bean 組件中。
3、( )5. Spring 框架采用的是分層架構(gòu),它一系列的功能要素被分成20 個(gè)模塊。 ()選擇題1. 以下關(guān)于 Spring 核心容器相關(guān)說法錯(cuò)誤的是。 ()A: Spring 框架的所有功能都是通過其核心容器來實(shí)現(xiàn)的。B: 創(chuàng)建 BeanFactory 實(shí)例時(shí),需要提供 Spring 所管理容器的詳細(xì)配置信息,這些信息通常采用XML文件形式來管理。C: ApplicationContext 不僅包含了 BeanFactory 的所有功能,還添加了對(duì)國際化、資源訪問、事件傳播等方面的支持。D: 通常在 Java 項(xiàng)目中,會(huì)采用通過ClassPathXmlApplicationContext
4、類來實(shí)例化ApplicationContext容器的方式,而在Web項(xiàng)目中,ApplicationContext容器的實(shí)例化工作會(huì)交由Web服務(wù)器來完成。2. 以下有關(guān) Spring 的四個(gè)基礎(chǔ)包說法正確的是。 ()A: Spring 的四個(gè)基礎(chǔ)包,它們分別對(duì)應(yīng) Spring Web 容器的四個(gè)模塊。B: Spring 的四個(gè)基礎(chǔ)包有、 、和。C: 是所有應(yīng)用都要用到的 JAR 包,它包含訪問配置文件以及進(jìn)行IoC 或者 DI 操作相關(guān)的所有類。D: 包含 Spring 框架基本的核心工具類, Spring 其它組件都要用到這個(gè)包里的類,是其它 組件的基本核心。3. 以下有關(guān) Spring 框
5、架優(yōu)點(diǎn)的說法正確的是。 ()A: Spring 具有簡單、可測試和松耦合等特點(diǎn),從這個(gè)角度出發(fā), Spring 就是應(yīng)用于任何Java 應(yīng)用的開發(fā)中;B: Spring提供了對(duì)AOP的支持,它允許將一些通用任務(wù),如安全、事務(wù)、日志等進(jìn)行集中式處理,從而提高了程序的復(fù)用性C: Spring 就是一個(gè)大工廠,可以將所有對(duì)象的創(chuàng)建和依賴關(guān)系的維護(hù)工作都交給Spring容器管理,杜絕了組件之間的耦合性D: Spring 增加了 Java EE 開發(fā)中一些API 的使用難度4. Spring 的核心容器是其他模塊建立的基礎(chǔ),以下哪個(gè)不是該容器的組成模塊。 ()A: Beans 模塊B: Core 模塊C
6、: Context 模塊D: AOP 模塊5. 下列選項(xiàng)中,不屬于Spring 框架優(yōu)點(diǎn)的是。 ()A: 提供強(qiáng)大的、可以有效減少頁面代碼的標(biāo)簽B: 聲明式事務(wù)的支持。C: 方便解耦、簡化開發(fā)D: 方便集成各種優(yōu)秀框架四、 簡答題1. Spring 依賴注入通常有哪些實(shí)現(xiàn)方式,列舉并分別進(jìn)行說明。答案1、 填空題1. Bean2. Spring 容器3. commons-logging4. 生命周期5. Spring 框架包、第三方依賴包2、 判斷題1. 對(duì)2. 錯(cuò)3. 對(duì)4. 對(duì)5. 對(duì)3、 選擇題1. A2. D3. B4. D5. A4、 簡答題Spring 的實(shí)現(xiàn)方式通常有兩種,一種是
7、屬性setter 方法注入,另一種是構(gòu)造方法注入。屬性setter 方法注入是指IoC 容器使用 setter 方法來注入被依賴的實(shí)例。通過調(diào)用無參構(gòu)造器或無參靜態(tài)工廠方法實(shí)例化 Bean后,調(diào)用該Bean的setter方法,即可實(shí)現(xiàn)基于setter方法的依賴注入。構(gòu)造方法注入是指IoC 容器使用構(gòu)造方法來注入被依賴的實(shí)例。基于構(gòu)造方法的依賴注入通過調(diào)用帶參數(shù)的構(gòu)造方法來實(shí)現(xiàn),每個(gè)參數(shù)代表著一個(gè)依賴。第 2章 Spring 中的 Bean習(xí)題填空題1. 所謂自動(dòng)裝配,就是將一個(gè)Bean 自動(dòng)的注入到到其他Bean 的【】中。2. Controller 通常作用在控制層,如 Spring MVC
8、 的【】 ,用于將控制層的類標(biāo)識(shí)為Spring中的Bean,其功能與 Component相同。1.1 注解用于將數(shù)據(jù)訪問層( DAO層)的類標(biāo)識(shí)為 Spring中的Bean,其功能與Component 相同。4 .對(duì)于1】作用域的Bean, Spring只負(fù)責(zé)創(chuàng)建,當(dāng)容器創(chuàng)建了Bean實(shí)例后,Bean的實(shí)例就交給客戶端代碼來管理, Spring 容器將不再跟蹤其生命周期。5 . 實(shí)例工廠方式采用直接創(chuàng)建Bean 實(shí)例的方式,在配置文件中,需要實(shí)例化的 Bean 是通過【】 屬性指向配置的實(shí)例工廠, 然后使用 factory-method 屬性確定使用工廠中的哪個(gè)方法。判斷題1. Compone
9、nt注解用于描述 Spring中的Bean,它是一個(gè)泛化的概念,僅僅表示一個(gè)組件, 并且可以作用在任何層次,使用時(shí)只需將該注解標(biāo)注在相應(yīng)方法上即可。 ( )2. Spring提供了 3種基于XMLI勺裝配方式:設(shè)值注入、構(gòu)造注入和屬性注入。()3. 每次客戶端請(qǐng)求singleton 作用域的 Bean 時(shí), Spring 容器都會(huì)創(chuàng)建一個(gè)新的實(shí)例, 并且不會(huì)管那些被配置成singleton 作用域的 Bean 的生命周期。 ()4. Spring 中使用 prototype 定義的 Bean 在 Spring 容器中將只有一個(gè)實(shí)例,也就是說,無論有多少個(gè) Bean 引用它,始終將指向同一個(gè)對(duì)象
10、。 ()5. 對(duì)于 prototype 作用域的 Bean, Spring 只負(fù)責(zé)創(chuàng)建,當(dāng)容器創(chuàng)建了 Bean 實(shí)例后, Bean 的 實(shí)例就交給客戶端代碼來管理, Spring 容器將不再跟蹤其生命周期。 ()選擇題1. Spring的bean元素中的autowire屬性取值不包括以下。()A: default B: byName C: byType D: byId2. 以下有關(guān) Bean 的裝配方式說法正確的是。 ( )A: Spring容器支持多種形式的Bean的裝配方式,如基于XMLI勺裝配、基于注解(Annotation )的裝配和自動(dòng)裝配(其中最常用的是基于XML的裝配);B: S
11、pring 提供了 3種基于XML的裝配方式:設(shè)值注入、構(gòu)造注入和屬性注入;C:在Spring實(shí)例化Bean的過程中,Spring首先會(huì)調(diào)用Bean的默認(rèn)構(gòu)造方法來實(shí)例化Bean對(duì)象,然后通過反射的方式調(diào)用 setter 方法來注入屬性值; D: 設(shè)值注入要求一個(gè)Bean 必須提供一個(gè)有參構(gòu)造方法并且為需要注入的屬性提供對(duì)應(yīng)的setter 方法。3. 以下哪些不屬于Spring 版本中 Bean 的作用域。 ()A: application B: request C: response D: globalSession4. Spring 中定義了一系列的注解,以下有關(guān)其常用的注解說明錯(cuò)誤的是。
12、 ( )A: Autowired 用于對(duì) Bean 的屬性變量、屬性的 setter 方法及構(gòu)造方法進(jìn)行標(biāo)注,配合對(duì)應(yīng)的注解處理器完成Bean 的自動(dòng)配置工作,默認(rèn)按照 Bean 的名稱進(jìn)行裝配。B: Repository 用于將數(shù)據(jù)訪問層(DAO層)的類標(biāo)識(shí)為 Spring中的Bean。C: Service 通常作用在業(yè)務(wù)層 ( Service 層) , 用于將業(yè)務(wù)層的類標(biāo)識(shí)為 Spring 中的Bean。D: Controller 通常作用在控制層(如 Spring MVC 的 Controller ) ,用于將控制層的類標(biāo)識(shí)為 Spring 中的 Bean。5. 下列選項(xiàng)中,不屬于Spr
13、ing 中實(shí)例化 Bean 的方式的是。 ()A: 構(gòu)造器實(shí)例化 B:靜態(tài)工廠方式實(shí)例化C: 實(shí)例工廠方式實(shí)例化 D: 抽象方法實(shí)例化四、 簡答題1.請(qǐng)簡述基于XML的裝配方式中設(shè)值注入的要求。答案1、 填空題1. Property2. Controller3. Repository4. prototype5. factory-bean2、 判斷題1. 錯(cuò)2. 錯(cuò)3. 錯(cuò)4. 錯(cuò)5. 對(duì)3、 選擇題1. D2. C3. C4. A5. D4、 簡答題Spring中基于XML的裝配方式中設(shè)值注入需要滿足以下兩點(diǎn)要求:1 、 Bean 類必須提供一個(gè)默認(rèn)的無參構(gòu)造方法。2 、 Bean 類必須為需
14、要注入的屬性提供對(duì)應(yīng)的 setter 方法。第 3章 Spring AOP習(xí)題填空題1. AspectJ 框架中注解【 】用于定義切入點(diǎn)表達(dá)式,在使用時(shí)還需定義一個(gè)包含名字和 任意參數(shù)的方法簽名來表示切入點(diǎn)名稱。2. 在 Spring 配置文件中, <aop:aspect> 子元素的 pointcut-ref 屬性用于指定一個(gè)已經(jīng)存在 的【】 。3. 在 Spring 的配置文件中,配置切面使用的是【 】元素。4. 在Spring中,使用【】是創(chuàng)建AOP代理的基本方式。5. AO冰語中【】表示AOP匡架在特定的切入點(diǎn)執(zhí)行的增強(qiáng)處理,即在定義好的切入點(diǎn)處所要執(zhí)行的程序代碼。判斷題1.
15、 如果在同一個(gè)連接點(diǎn)有多個(gè)通知需要執(zhí)行,那么在同一切面中,目標(biāo)方法之前的前置通知 和環(huán)繞通知的執(zhí)行順序是未知的,目標(biāo)方法之后的后置通知和環(huán)繞通知的執(zhí)行順序也是未 知的。 ()2. AspectJ 框架中的注解After 用于定義最終 final 通知,不管是否異常,該通知都會(huì)執(zhí)行。()3. Spring 配置文件中的 <beans>元素下可以包含多個(gè) <aop:config> 元素,一個(gè) <aop:config> 元 素中又 可以 包含屬 性和 子元素 ,其 子元素 包括 <aop:pointcut> 、 <aop:advisor>
16、和 <aop:aspect> 。 ( )4. Spring中的AOP代理默認(rèn)就是使用CGLIB代理的方式來實(shí)現(xiàn)的。()5. Spring 以后, Spring AOP 引入了對(duì) AspectJ 的支持,并允許直接使用 AspectJ 進(jìn)行編程, 而 Spring 自身的 AOP API 也盡量與 AspectJ 保持一致。 ( )選擇題1. 以下不屬于ProxyFactoryBean 類中的常用可配置屬性的是。 ()A: targetB: proxyInterfacesC: targetClassD: interceptorNames2. 以下哪種類型不是Spring 中的通知類型
17、。 ( )A: 異常通知B: 前置通知C: 后置通知D: 最終通知3. 關(guān)于 AspectJ 注解的介紹,說法錯(cuò)誤的是。 ()A: Aspect 用于定義一個(gè)切面B: Pointcut 用于定義切入點(diǎn)表達(dá)式C: Before 用于定義前置通知,相當(dāng)于 BeforeAdviceD: After 用于定義后置通知,相當(dāng)于AfterReturningAdvice4. 以下有關(guān)CGLIB代理相關(guān)說法正確的是。()A: CGLIB 代理的使用非常簡單,但它還有一定的局限性使用動(dòng)態(tài)代理的對(duì)象必須實(shí)現(xiàn)一個(gè)或多個(gè)接口。B:如果要對(duì)沒有實(shí)現(xiàn)接口的類進(jìn)行代理,那么可以使用CGLIB代理。C: CGLIB是一個(gè)高性
18、能開源的代碼生成包,在使用時(shí)需要另外導(dǎo)入CGLIB所需要的包。D: Spring 中的AOP弋理,可以是 JDK動(dòng)態(tài)代理,也可以是 CGLIB代理。5. 以下關(guān)于 Spring AOP 的介紹錯(cuò)誤的是。 ()A: AOP 的全稱是 Aspect-Oriented Programming ,即面向切面編程(也稱面向方面編程)B: AOP 采取橫向抽取機(jī)制,將分散在各個(gè)方法中的重復(fù)代碼提取出來,這種采用橫向抽取機(jī)制的方式,采用。即想是無法辦到的。C:雖然AOP一種新的編程思想,采取橫向抽取機(jī)制,是OO用勺升級(jí)替代品。D:目前最流行的 AOP匡架有兩個(gè),分別為 Spring AOP和AspectJ。
19、四、 簡答題1. 請(qǐng)對(duì) Spring 的通知類型進(jìn)行簡要說明。答案1、 填空題1. Pointcut2. 切入點(diǎn)名稱3. <aop:aspect>4. ProxyFactoryBean5. Advice2、 判斷題1. 對(duì)2. 對(duì)3. 對(duì)4. 錯(cuò)5. 錯(cuò)3、 選擇題1. C2. D3. D4. C5. C4、 簡答題Spring 中主要包含 5 種通知類型,分別是環(huán)繞通知,前置通知,后置通知,異常通知和引介通知。其中,環(huán)繞通知表示在目標(biāo)方法執(zhí)行前后實(shí)施增強(qiáng),可以應(yīng)用于日志、事務(wù)管理等功能。前置通知表示在目標(biāo)方法執(zhí)行前實(shí)施增強(qiáng),可以應(yīng)用于權(quán)限管理等功能。后置通知表示在目標(biāo)方法執(zhí)行后實(shí)
20、施增強(qiáng),可以應(yīng)用于關(guān)閉流、上傳文件、刪除臨時(shí)文件等功能。異常通知表示在方法拋出異常后實(shí)施增強(qiáng),可以應(yīng)用于處理異常記錄日志等功能。引介通知表示在目標(biāo)類中添加一些新的方法和屬性,可以應(yīng)用于修改老版本程序(增強(qiáng)類) 。第 4章 Spring 的數(shù)據(jù)庫開發(fā)習(xí)題填空題1. JdbcTemplate 類中還提供了大量的【 】方法來處理各種對(duì)數(shù)據(jù)庫表的查詢操作。2. JdbcTemplate 類中的【 】方法可以完成插入、更新和刪除數(shù)據(jù)的操作。3. 【 】就是 Junit4 用來測試的注解,要測試哪個(gè)方法,只需要在相應(yīng)測試的方法上添加此注解即可。4. JDBC連接數(shù)據(jù)庫時(shí)需要 4個(gè)基本屬性,包括有【】、ur
21、l、username和password。5. JdbcTemplate 類 的 繼 承 關(guān) 系 十 分 簡 單 。 它 繼 承 自 抽 象 類 【】 , 同 時(shí) 實(shí) 現(xiàn) 了JdbcOperations 接口。判斷題1. 在使用 Junit 進(jìn)行單一測試時(shí), JUnit 視圖窗口的進(jìn)度條為綠色表明運(yùn)行結(jié)果正確; 如果進(jìn) 度條為紅色則表示有錯(cuò)誤,并且會(huì)在窗口中顯示所報(bào)的錯(cuò)誤信息。 ( )2. 定義 jdbcTemplate 時(shí),需要將dataSource 注入到 jdbcTemplate 中。 ()3. JdbcOperations 接口定義了在 JdbcTemplate 類中可以使用的操作集合,
22、包括添加、修改、查詢和刪除等操作。 ()4. JdbcTemplate 類中還提供了大量的 query() 方法來處理各種對(duì)數(shù)據(jù)庫表的查詢操作。 ()5. 在 JdbcTemplate 類中,提供了大量的更新和查詢數(shù)據(jù)庫的方法,我們就是使用的這些方法來操作數(shù)據(jù)庫的。 ( )選擇題1. Spring JDBC 模塊主要由4 個(gè)包組成,其中不包括。 ()A: core (核心包)B: dataSource (數(shù)據(jù)源包)C: driverClass (數(shù)據(jù)庫驅(qū)動(dòng)包)D: support (支持包)2. JdbcTemplate 的直接父類是。 ()A: JdbcAccessorB: JdbcOper
23、ationsC: JdbcSupperD: Object3. JdbcTemplate 類包含在 Spring JDBC 模塊的哪個(gè)包中。 ( )A: 核心包B: 數(shù)據(jù)源包C: 對(duì)象包D: 支持包4. 下面關(guān)于 update() 方法描述錯(cuò)誤的是。 ()A: update() 方法可以完成插入、更新、刪除和查詢數(shù)據(jù)的操作B: 在 JdbcTemplate 類中,提供了一系列的 update() 方法C: update() 方法執(zhí)行后,會(huì)返回受影響的行數(shù)D: update() 方法返回的參數(shù)是int 類型5. 下面描述中,關(guān)于query() 方法說法錯(cuò)誤的是。 ()A: List query(S
24、tring sql, RowMapper rowMapper)會(huì)執(zhí)行 String 類型參數(shù)提供的 SQL語句,并通過RowMapper返回一個(gè)List類型的結(jié)果。B: List query ( String sql, PreparedStatementSetter pss, RowMapper rowMapper)會(huì)根據(jù)String類型參數(shù)提供的 SQL語句創(chuàng)建PreparedStatement對(duì)象,通過RowMapper將 結(jié)果返回到 List 中。C: List query ( String sql, Object args, RowMapper rowMapper )會(huì)將 args 參
25、數(shù)綁 定到SQL語句中,并通過 RowMapperili回一個(gè) Object類型的單行記錄。D: queryForList ( String sql,Object args, class<T> elementType )可以返回多行數(shù) 據(jù)的結(jié)果,但必須是返回列表, elementType 參數(shù)返回的是List 元素類型。四、 簡答題1. 請(qǐng)簡述如何使用 Junit 對(duì)程序中的方法進(jìn)行測試。答案1、 填空題1. query()2. update()3. Test4. driverClassName5. JdbcAccessor2、 判斷題1. 對(duì)2. 對(duì)3. 對(duì)4. 對(duì)5. 對(duì)3、
26、選擇題1. C2. A3. A4. A5. C4、 簡答題使用 JUnit 對(duì)程序中的方法進(jìn)行測試時(shí)的步驟如下:1 、先創(chuàng)建一個(gè)普通測試方法,并在方法上添加單元測試的注解Test;2、添加Test注解后,在注解處會(huì)報(bào)錯(cuò),將鼠標(biāo)移動(dòng)至Test注解處,會(huì)彈出錯(cuò)誤提示框,單擊提示框中的 Add JUnit4 library to the build path后, Eclipse 會(huì)自動(dòng)將 JUnit4 的支持包加入到項(xiàng)目中;3、 在執(zhí)行程序時(shí),只需使用鼠標(biāo)右鍵單擊測試方法, 在彈出的快捷菜單中選擇Run As 中的 JUnitTest 選項(xiàng)來運(yùn)行測試方法即可。第 5章 Spring 的事務(wù)管理習(xí)題填
27、空題1. 使用基于注解方式的事務(wù)管理需要在使用事務(wù)的 Spring Bean 類或者 Bean 類的方法上添加注解【 】 。2. Spring的聲明式事務(wù)管理可以通過兩種方式來實(shí)現(xiàn),一種是基于XML的方式,另一種是基】的方式。3. 以后,提供了 tx 命名空間來配置事務(wù), tx 命名空間下提供了【 】元素來配置事務(wù)的 通知(增強(qiáng)處理) 。4.在Spring的所有JAR包中,包含一個(gè)名為【】的 JAR 包,該包就是Spring 提供的5.用于事務(wù)管理的依賴包。聲明式事務(wù)管理:是通過【】實(shí)現(xiàn)的事務(wù)管理。判斷題1. 基于 XML 方式的聲明式事務(wù)管理是通過在配置文件中配置事務(wù)規(guī)則的相關(guān)聲明來實(shí)現(xiàn)的。
28、 ()2. 編程式事務(wù)管理是通過編寫代碼實(shí)現(xiàn)的事務(wù)管理,包括定義事務(wù)的開始、正常執(zhí)行后的事務(wù)提交和異常時(shí)的事務(wù)回滾。 ( )3. Spring 的事務(wù)管理簡化了傳統(tǒng)的事務(wù)管理流程, 并且在一定程度上減少了開發(fā)者的工作量。()4. Spring的聲明式事務(wù)管理可以通過兩種方式來實(shí)現(xiàn),一種是基于XML的方式,另一種是基于 Annotation 的方式。 ( )5. Responsebody注解與RequestMapping注解配合使用時(shí),頁面中將可以獲取到方法的返回 值。 ()選擇題1. 以下關(guān)于 Transactional 注解可配置的參數(shù)信息及秒正確的是。 ()A: value 用于指定需要使
29、用的事務(wù)管理器,默認(rèn)為 "" ;B: read-only用于指定事務(wù)是否只讀,默認(rèn)為true ;C: isolation用于指定事務(wù)的隔離級(jí)別,默認(rèn)為;D: propagation 用于指定事務(wù)的傳播行為,默認(rèn)為 Propagation. SUPPORTS ;2. 以下基于XML方式的聲明式事務(wù)管理配置文件中tx:advice元素的子元素tx:method屬性描述錯(cuò)誤的是。 ( )A: name :該屬性為必選屬性,它指定了與事務(wù)屬性相關(guān)的方法名B: propagation :用于指定事務(wù)的傳播行為,它的默認(rèn)值為SUPPORTSC: isolation :該屬性用于指定事務(wù)
30、的隔離級(jí)別,其默認(rèn)值為 DEFAULTD: read-only :該屬性用于指定事務(wù)是否只讀,其默認(rèn)值為false3. 以下有關(guān)事務(wù)管理方式相關(guān)說法錯(cuò)誤的是。 ()A: Spring 中的事務(wù)管理分為兩種方式:一種是傳統(tǒng)的編程式事務(wù)管理,另一種是聲明式事務(wù)管理。B:編程式事務(wù)管理:是通過AO限術(shù)實(shí)現(xiàn)的事務(wù)管理,就是通過編寫代碼實(shí)現(xiàn)的事務(wù)管理,包括定義事務(wù)的開始、正常執(zhí)行后的事務(wù)提交和異常時(shí)的事務(wù)回滾。C: 聲明式事務(wù)管理:其主要思想是將事務(wù)管理作為一個(gè)“切面”代碼單獨(dú)編寫,然后通過AO啦術(shù)將事務(wù)管理的“切面”代碼植入到業(yè)務(wù)目標(biāo)類中。D: 聲明式事務(wù)管理最大的優(yōu)點(diǎn)在于開發(fā)者無需通過編程的方式來管
31、理事務(wù),只需在配置文件中進(jìn)行相關(guān)的事務(wù)規(guī)則聲明,就可以將事務(wù)規(guī)則應(yīng)用到業(yè)務(wù)邏輯中。4. 以下有關(guān) Spring 事務(wù)管理及核心接口說法錯(cuò)誤的是。 ( )A: PlatformTransactionManager 接口是 Spring 提供的平臺(tái)事務(wù)管理器,主要用于管理事 務(wù)。B: TransactionDefinition 接口是事務(wù)定義(描述)的對(duì)象,該對(duì)象中定義了事務(wù)規(guī)則, 并提供了獲取事務(wù)相關(guān)信息的方法。C: TransactionStatus 接口是事務(wù)的狀態(tài),它描述了某一時(shí)間點(diǎn)上事務(wù)的狀態(tài)信息。D: 在事務(wù)管理過程中,傳播行為可以控制是否需要?jiǎng)?chuàng)建事務(wù)以及如何創(chuàng)建事務(wù),通常情況下,對(duì)于
32、數(shù)據(jù)的查詢、插入、更新和刪除操作,必須進(jìn)行事務(wù)管理。5. 下列選項(xiàng)中,哪一個(gè)不是Spring 中事務(wù)管理的核心接口。 ()A: PlatformTransactionManagerB: TransactionDefinitionC: TransactionStatusD: TransactionManager四、 簡答題1. 請(qǐng)列舉 PlatformTransactionManager 接口提供了有哪些事務(wù)操作方法,并對(duì)這些方法分別 進(jìn)行簡單說明。答案1、 填空題1. Transactional2. Annotation3. <tx:advice>4. 技術(shù)2、 判斷題1. 對(duì)2.
33、 對(duì)3. 對(duì)4. 對(duì)5. 對(duì)3、 選擇題1. A2. B3. B4. D5. D4、 簡答題PlatformTransactionManager 接口中提供了三個(gè)事務(wù)操作方法,具體如下所示:( 1 ) TransactionStatus getTransaction(TransactionDefinition definition ) :用于獲取 事務(wù)狀態(tài)信息。:用于提交事務(wù)。:用于回滾事務(wù)。2) void commit(TransactionStatus status)3) void rollback(TransactionStatus status)第 6章 初識(shí)MyBatis習(xí)題填空題1
34、. MyBatis 的刪除操作在映射文件中是通過配置【 】元素來實(shí)現(xiàn)的。2. MyBatis映射文件中mapper元素是配置文件的根元素,它包含一個(gè)【】屬性,該屬性為這個(gè)mapper指定了唯一的命名空間。3. 使用MySQ沖的【】函數(shù)進(jìn)行字符串拼接,可以有效防止模糊查詢時(shí)可能出現(xiàn)的SQL注入問題。4. 作為 MyBatis 的全局配置文件,配置了 MyBatis 的運(yùn)行環(huán)境等信息,其中主要內(nèi)容是獲取 【】。5.1 是當(dāng)前主流的Java持久層框架之一,它與Hibernate 一樣,也是一種ORM匡架。判斷題1. MyBatis映射文件中mappers元素是配置文件的根元素,它包含一個(gè)namesp
35、ace屬性,該屬性為這個(gè)mapper指定了唯一的命名空間。()2. 使用 MyBatis 框架非常簡單,只需在應(yīng)用程序中引入 MyBatis 框架 lib 目錄中的全部JAR包以及數(shù)據(jù)庫驅(qū)動(dòng)包即可進(jìn)行項(xiàng)目運(yùn)行。 ()3. OR網(wǎng)是一種為了解決面向?qū)ο笈c關(guān)系型數(shù)據(jù)庫中數(shù)據(jù)類型不匹配的技術(shù),它通過描述Java對(duì)象與數(shù)據(jù)庫表之間的映射關(guān)系,自動(dòng)將Java 應(yīng)用程序中的對(duì)象持久化到關(guān)系型數(shù)據(jù)庫的表中。 ()4. MyBatis 的更新操作也需要進(jìn)行事務(wù)提交。 ()5. 創(chuàng)建的映射文件中的SQL語句要以面向?qū)ο蟮膶懛ㄟM(jìn)行書寫。()選擇題1. MyBatis 的刪除操作有關(guān)說發(fā)錯(cuò)誤的是。 ()A: MyB
36、atis 的刪除操作在映射文件中是通過配置delete 元素來實(shí)現(xiàn)的。B: MyBatis 的刪除操作也需要進(jìn)行事務(wù)提交。C: MyBatis 的刪除操作執(zhí)行了 SqlSession 的 delete() 方法。D: MyBatis 的刪除操作和添加操作時(shí),也需要封裝整個(gè)實(shí)體類。2. MyBatis 的更新操作有關(guān)說發(fā)錯(cuò)誤的是。 ()A: MyBatis 的更新操作在映射文件中是通過配置update 元素來實(shí)現(xiàn)的 。B: MyBatis 的更新操作也需要進(jìn)行事務(wù)提交。C: MyBatis 的更新操作執(zhí)行了 SqlSession 的 update() 方法。D: MyBatis 的更新操作和添加
37、操作時(shí),只需要將insert() 方法改為 updat() 方法即可。3. 關(guān)于MyBatis模糊查詢中進(jìn)行 SQL字符串拼接時(shí),說法錯(cuò)誤的是。()A:使用“$”進(jìn)行SQL字符串拼接時(shí),無法防止SQL注入問題。B:可以使用MySQ沖白concat()函數(shù)進(jìn)行字符串拼接。C:使用MySQ沖的concat()函數(shù)進(jìn)行字符串拼接,也無法防止SQL注入。D:使用MySQ葉的concat()函數(shù)進(jìn)行字符串拼接,導(dǎo)致數(shù)據(jù)庫移植性變差。4. 有關(guān) MyBatis 工作原理說法錯(cuò)誤的是。 ()A: MyBatis 的全局配置文件配置了MyBatis 的運(yùn)行環(huán)境等信息,其中主要內(nèi)容是獲取數(shù)據(jù)庫連接B: MyBa
38、tis映射文件中配置了操作數(shù)據(jù)庫的SQL語句,需要在MyBatis的全局配置文件中加載才能執(zhí)行C: 可以通過 MyBatis 的環(huán)境等配置信息構(gòu)建會(huì)話對(duì)象SqlSessionD: SqlSession 對(duì)象,該對(duì)象中包含了執(zhí)行SQL的所有方法5.使用ORM框架后,應(yīng)用程序不再直接訪問底層數(shù)據(jù)庫,而是以()的方式來操作持久化對(duì)象(PQ 即 Persisent Object )。()A: 面向業(yè)務(wù) B: Hibernate C:面向?qū)ο驞: MyBatis四、 簡答題1. 請(qǐng)簡述 Hibernate 和 MyBatis 這兩個(gè)框架的主要區(qū)別。答案一、 填空題 1. <delete> 2
39、. namespace3. concat()4. 數(shù)據(jù)庫連接5. MyBatis2、 判斷題1. 錯(cuò)2. 錯(cuò)3. 對(duì)4. 對(duì)5. 錯(cuò)3、 選擇題 1. D2. D3. C4. C5. C 四、 簡答題Hibernate 是一個(gè)全表映射的框架。通常開發(fā)者只需定義好持久化對(duì)象到數(shù)據(jù)庫表的映射關(guān)系,就可以通過Hibernate提供的方法完成持久層操作,開發(fā)者并不需要熟練的掌握SQL語句的編寫,所以其開發(fā)效率會(huì)高于 MyBatis 。而 Hibernate 自身也存在著一些缺點(diǎn),例如它在多表關(guān)聯(lián)時(shí),對(duì)SQL查詢的支持較差;更新數(shù)據(jù)時(shí),需要發(fā)送所有字段;不支持存儲(chǔ)過程;不能通過優(yōu)化SQL來優(yōu)化性能等。這
40、些問題導(dǎo)致其只適合在場景不太復(fù)雜且對(duì)性能要求不高的項(xiàng)目中使用。 MyBatis 是一個(gè)半自動(dòng)映射的框架。這里所謂的“半自動(dòng)”是相對(duì)于 Hibernate 全表映射而言的。與Hibernate 相比,雖然使用 MyBatis手動(dòng)編寫SQL要比使用Hibernate的工作量大,但MyBatis 可以配置動(dòng)態(tài) SQL并優(yōu)化SQL,可以通過配置決定SQL的映射規(guī)則,它還支持存儲(chǔ)過程等。對(duì)于一些復(fù)雜的和需要優(yōu)化性能的項(xiàng)目來說,顯然使用 MyBatis 更加合適。第 7章 MyBatis 的核心配置習(xí)題填空題1. 當(dāng)數(shù)據(jù)表中的列和需要返回的對(duì)象的屬性不完全一致, MyBatis 是不會(huì)自動(dòng)賦值的。 此時(shí),
41、 就可以使用【 】元素進(jìn)行處理。2. <resultMap> 元素的子元素<id> 用于表示哪個(gè)列是【】 ,而【】元素用于表示POJ5 口數(shù)據(jù)表中普通列的映射關(guān)系。3. MyBaits 映射文件中使用 <include> 元素的【 】屬性可以引用自定義的代碼片段,其屬性值為自定義代碼片段的 id 。4. MyBatis映射文件中<insert>的<selectKey>子元素的order屬性可以被設(shè)置為【】或【 】 。5. 對(duì)于數(shù)據(jù)源的配置, MyBatis 框架提供了UNPOOLE、D【】和 JNDI 三種數(shù)據(jù)源類型。判斷題1. &l
42、t;resultMap> 的子元素 <association> 和 <collection> 用于處理多表時(shí)的關(guān)聯(lián)關(guān)系。 ( )2. MyBatis 映射文件的 <insert> 元素的屬性與<select> 元素的屬性大部分相同,但還包含了 3個(gè)特有屬性。()3. MyBatis 框架提供了許多默認(rèn)別名, 由于別名不區(qū)分大小寫, 所以在使用時(shí)要注意重復(fù)定義的覆蓋問題。()4. 映射文件中可以包含多個(gè)id 值相同的 <resultMap> 元素。 ()5. 與 <insert> 元素一樣, <update>
43、; 和 <delete> 元素在執(zhí)行完之后,也會(huì)返回一個(gè)表示影響記錄條數(shù)的整數(shù)。 ( )選擇題1. 以下有關(guān) <sql> 元素說法錯(cuò)誤的是。 ( )A: <sql>元素的作用就是定義可重用的SQL代碼片段,然后在其他語句中引用這一代碼片段。B: 使用 <include> 元素的 refid 屬性可以引用自定義的代碼片段。C: 使用 <include> 元素 refid 的屬性值為自定義代碼片段的name。D: <sql>元素是<mapper>元素的子元素。2. 以下有關(guān) MyBatis 映射文件中 <in
44、sert> 元素說法正確的是。 ()A: <insert>元素用于映射插入語句,在執(zhí)行完元素中定義的SQL語句后,沒有返回結(jié)果。B: <insert> 元素的屬性與<select> 元素的屬性相同。C: keyColumn 屬性用于設(shè)置第幾列是主鍵,當(dāng)主鍵列不是表中的第一列時(shí)需要設(shè)置。D: useGeneratedKeys (僅對(duì) insert 有用)此屬性會(huì)使 MyBatis 使用 JDBC的 getGeneratedKeys() 方法來獲取由數(shù)據(jù)庫內(nèi)部生產(chǎn)的主鍵。3. 以下關(guān)于 <select> 元素及其屬性說法錯(cuò)誤的是。 ( )A:
45、<select> 元素用來映射查詢語句,它可以幫助我們從數(shù)據(jù)庫中讀取出數(shù)據(jù),并組裝數(shù)據(jù)給業(yè)務(wù)開發(fā)人員。B: parameterType 屬性表示傳入 SQL語句的參數(shù)類的全限定名或者別名。C: resultMap 表示外部 resultMap 的命名引用,返回時(shí)可以同時(shí)使用 resultType 和 resultMapD: 在同一個(gè)映射文件中可以配置多個(gè)<select> 元素。4. 關(guān)于 <typeHandlers> 元素說法錯(cuò)誤的是。 ()A: <typeHandler> 元素就是用來在配置文件中注冊(cè)自定義的類型處理器的,它的使用方式有兩種。B
46、: 通過 <typeHandlers> 元素的子元素<typeHandler> 就可以配置單個(gè)類型處理器。C:通過<typeHandlers>元素的子元素<package>可以配置包下的所有類型處理器。D: <typeHandlers> 元素的子元素<package> 的 handler 屬性用于指定類型處理器所在的包名,系統(tǒng)會(huì)在啟動(dòng)時(shí)自動(dòng)的掃描包下所有的文件,并把它們作為類型處理器。5. 有關(guān) MyBatis 配置文件中 <settings> 元素的說法錯(cuò)誤的是。 ()A: <settings>
47、元素主要用于改變MyBatis 運(yùn)行時(shí)的行為,例如開啟二級(jí)緩存、開啟延遲加載等。B: 雖然不配置 <settings> 元素,也可以正常運(yùn)行MyBatis ,但是熟悉<settings> 的配置內(nèi)容以及它們的作用還是十分必要的。C: <settings>元素中延遲加載的全局開關(guān)的參數(shù)lazyLoadingEnabled 默認(rèn)開啟。D: <settings>元素的配置內(nèi)容大多數(shù)都不需要開發(fā)人員去配置它,通常在需要時(shí)只配置少數(shù)幾項(xiàng)即可。四、 簡答題1. 請(qǐng)簡述 <sql> 元素的作用及使用。答案1、 填空題1. <resultMap
48、>2. 主鍵 、 <result>3. refid4. BEFORE、 AFTER5. POOLED2、 判斷題1. 對(duì)2. 對(duì)3. 對(duì)4. 錯(cuò)5. 對(duì)3、 選擇題1. C2. C3. C4. D5. C4、 簡答題<sql>元素的作用就是定義可重用的SQL代碼片段。使用時(shí),先通過 <sql>元素定義重用的代碼片段,然后在需要使用的地方使用 <include> 元素的 refid 屬性引用了自定義的代碼片段。第 8章 動(dòng)態(tài) SQL習(xí)題填空題1 .當(dāng)在MyBaits文件中使用了 bind元素,在SQL語句中可以直接引用 bind元素的【 屬性
49、值即可進(jìn)行動(dòng)態(tài)SQL組裝。2 .在使用MyBaits的foreach時(shí),如果傳入的參數(shù)是多個(gè)的時(shí)候,就需要把它們封裝成一個(gè) Map 了,這時(shí)候collection 屬性值就為 Map 的【】 。3 .在MyBaits映射文件中使用set和if元素組合進(jìn)行 update語句動(dòng)態(tài)SQL組裝時(shí),如果 set 元素內(nèi)包含的內(nèi)容都為空,則會(huì)出現(xiàn)【 】 。4 . MyBaits中trim元素的作用是去除一些特殊的字符串,它的【】屬性代表的是語句的前綴,而prefixOverrides 屬性代表的是需要去除的哪些特殊字符串。5 . 使用 set 和 if 元素相結(jié)合的方式來組裝update 語句時(shí), set
50、 元素就會(huì)動(dòng)態(tài)前置【】關(guān)鍵字,同時(shí)也會(huì)消除SQL語句中最后一個(gè)多余的【1.<foreach> 作判斷題 可以將任何可迭代對(duì)象(如列表、集合等)和任何的字典或者數(shù)組對(duì)象傳遞給為集合參數(shù)。 ()2. 在MyBaits映射文件中使用set和if元素組合進(jìn)行 update語句動(dòng)態(tài)SQL組裝時(shí),如果 set元素內(nèi)包含的內(nèi)容都為空,則會(huì)出現(xiàn)SQL語法錯(cuò)誤。()3. MyBaits中對(duì)原始 SQL中的“where 1=1"的條件可以使用where與if元素組合進(jìn)行替換。 ()4. 在 MyBatis 中 if 元素用于單條件分支判斷,當(dāng)某個(gè)if 的 test 屬性判斷成立,然后跳過其他
51、if元素進(jìn)行動(dòng)態(tài)SQ印裝。()5. MyBatis中的foreach元素可以用于對(duì)數(shù)組和集合循環(huán)遍歷,批量執(zhí)行SQL操作。()選擇題1. 以下不屬于foreach 元素中使用的屬性的是。 ()A: separator B: collectionC: currentD: item2. 以下關(guān)于 foreach 元素中使用的幾種屬性的描述錯(cuò)誤的是。 ()A: item :配置的是循環(huán)中當(dāng)前的元素。B: index :配置的是當(dāng)前元素在集合的位置下標(biāo)。C: collection : 配置的是傳遞過來的參數(shù)類型, 它可以是一個(gè)array 、 list ( 或 collection ) 、Map集合的鍵
52、、POJCfe裝類中數(shù)組或集合類型的屬性名等。D: separator :配置的是各個(gè)元素的間隔符。3. 以下關(guān)于 MyBatis的set元素的使用及說法正確的是。()A: set元素主要用于更新操作,其主要作用是在動(dòng)態(tài)包含的SQL語句前輸出一個(gè)SET關(guān)鍵字,并將SQL語句中最后一個(gè)多余的逗號(hào)去除。B:使用MyBatis的set元素來更新操作時(shí),前端需要傳入所有參數(shù)字段,否則未傳入字段會(huì)默認(rèn)設(shè)置為空。C:在映射文彳中使用<set>和<if>元素組合進(jìn)行update語句動(dòng)態(tài)SQL組裝時(shí),<set>元素 內(nèi)包含的內(nèi)容可以都為空, <if> 元素會(huì)進(jìn)行
53、判斷處理。D:在映射文件進(jìn)行更新操彳時(shí),只需要使用<set>元素就可以進(jìn)行動(dòng)態(tài) SQUfi裝。4. 以下有關(guān)MyBatis動(dòng)態(tài)SQL中的主要元素說法錯(cuò)誤的是。()A: <if> 用于單條件分支判斷。B: <choose> ( <when>、 <otherwise> )用于多條件分支判斷。C: <foreach> 循環(huán)語句,常用于in 語句等列舉條件中。D: <bind>從OGN醫(yī)達(dá)式中創(chuàng)建一個(gè)變量,并將其綁定到上下文,只于模糊查詢的sql中。5. 當(dāng)有多個(gè)選擇的情況是,值需要從多個(gè)選項(xiàng)中選擇一個(gè)去執(zhí)行時(shí),可以使
54、用的動(dòng)態(tài)SQL 元素是。 ()A: <if>B: <choose> 、 <when>、 <otherwise> C: <when>D: <set>四、 簡答題1.請(qǐng)簡述MyBatis動(dòng)態(tài)SQL中的主要元素及說明。答案1、 填空題1. name2. 鍵3. SQL語法錯(cuò)誤4. prefix5. SET 、逗號(hào)2、 判斷題1. 對(duì)2. 對(duì)3. 對(duì)4. 錯(cuò)5. 對(duì)3、 選擇題1. C2. C3. A4. D5. B4、 簡答題MyBatis動(dòng)態(tài)SQL中的主要元素及說明如下:<if> :判斷語句,用于單條件分支判斷;&
55、lt;choose> ( <when>、 <otherwise> ) :相當(dāng)于 Java 中的switch.case.default語句,用于多條件分支判斷;<where>、<trim>、<set> :輔助元素,用于處理一些SQL拼裝、特殊字符問題;<foreach> :循環(huán)語句,常用于in 語句等列舉條件中;sql 中。<bind> :從OGN醫(yī)達(dá)式中創(chuàng)建一個(gè)變量,并將其綁定到上下文,常用于模糊查詢的第 9章 MyBatis 的關(guān)聯(lián)映射習(xí)題填空題】子元素該元素來處理多對(duì)多關(guān)聯(lián)關(guān)系的?!孔釉卦撛貋硖幚?/p>
56、一對(duì)一關(guān)聯(lián)關(guān)系的。】表,引入兩張表的主鍵作為外鍵,兩個(gè)1. MyBatis 是通過<resultMap> 元素的【2. MyBatis 是通過<resultMap> 元素的【3. 在關(guān)系型數(shù)據(jù)庫中,多對(duì)多關(guān)系會(huì)產(chǎn)生【主鍵成為聯(lián)合主鍵或使用新的字段作為主鍵。4. 在關(guān)系型數(shù)據(jù)庫中,一對(duì)一可以在【 】引入對(duì)方主鍵作為外鍵。5. <collection> 子元素的 ofType 屬性與 javaType 屬性對(duì)應(yīng),它用于指定實(shí)體對(duì)象中集合類屬性所包含的【 】 。判斷題1. MyBatis 是同樣是通過 <resultMap> 元素的 <collection> 子元素該元素來處理多對(duì)多關(guān)聯(lián)關(guān)系的。 ()2. MyBatis 在映射文件中加載關(guān)聯(lián)關(guān)系對(duì)象主要通過兩種方式:嵌套查詢和嵌套結(jié)果。 ( )3. 在關(guān)系型數(shù)據(jù)庫中, 一對(duì)多就是在“一”的一方, 添加“多”的一方的主鍵作為外鍵。 ()4. MyBatis 中collectio
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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è)綜合體物業(yè)托管合同
- 餐廳店面租賃及特色食材供應(yīng)協(xié)議
- 生態(tài)餐廳廚房承包及綠色環(huán)保餐飲服務(wù)合同
- 智能化常年法律顧問報(bào)價(jià)單制作與實(shí)施
- 智能貸款匹配車輛居間服務(wù)合同
- 企業(yè)培訓(xùn)中心場地?zé)o償借用協(xié)議
- 溶血性貧血的護(hù)理措施
- 通信設(shè)備采購合同性能測試與維護(hù)跟蹤服務(wù)
- 車輛安全教育培訓(xùn)與考核合同范本
- 礦產(chǎn)資源開采采礦權(quán)出讓與稅收優(yōu)惠政策協(xié)議
- 安徽省2011年普通高校招生第一批本科院校投檔分?jǐn)?shù)及名次
- 時(shí)代音畫學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- GB/T 6003.2-2024試驗(yàn)篩技術(shù)要求和檢驗(yàn)第2部分:金屬穿孔板試驗(yàn)篩
- 獵聘-2024高校畢業(yè)生就業(yè)數(shù)據(jù)報(bào)告
- 產(chǎn)品質(zhì)量鑒定程序規(guī)范 總則
- 草晶華工作計(jì)劃
- DZ∕T 0388-2021 礦區(qū)地下水監(jiān)測規(guī)范(正式版)
- 腦干損傷護(hù)理常規(guī)
- MOOC 數(shù)值天氣預(yù)報(bào)-南京信息工程大學(xué) 中國大學(xué)慕課答案
- 跨座式單軌交通工程接觸網(wǎng)系統(tǒng)技術(shù)標(biāo)準(zhǔn)
- 教師口語智慧樹知到期末考試答案2024年
評(píng)論
0/150
提交評(píng)論