框架設計–期中複習作業–習題答案

說明:框架設計期中複習作業範圍是第3章~第7章,包括選擇題、填空題、判斷題。

第3章 Spring AOP

3.1 Spring AOP簡介

1、AOP術語中(Advice )表示AOP框架在特定的切入點執行的增強處理,即在定義好的切入點處所要執行的程序代碼。
2、以下關於Spring AOP 的介紹錯誤的是。(C)
A: AOP的全稱是Aspect-Oriented Programming,即面向切面編程(也稱面向方面編程)。
B: AOP採取橫向抽取機制,將分散在各個方法中的重複代碼提取出來,這種採用橫向抽取機制的方式,採用OOP思想是無法辦到的。
C: 雖然AOP是一種新的編程思想,採取橫向抽取機制,是OOP的升級替代品。
D: 目前最流行的AOP框架有兩個,分別爲Spring AOP和AspectJ。

3.2 動態代理

1、Spring中的AOP代理默認就是使用CGLIB代理的方式來實現的。(×)
2、以下有關CGLIB代理相關說法錯誤的是。(C)
A: CGLIB代理的使用非常簡單,但它還有一定的侷限性——使用動態代理的對象必須實現一個或多個接口。
B: 如果要對沒有實現接口的類進行代理,那麼可以使用CGLIB代理。
C: CGLIB是一個高性能開源的代碼生成包,在使用時不需要另外導入CGLIB所需要的包。
D: Spring中的AOP代理,可以是JDK動態代理,也可以是CGLIB代理。

3.3 基於代理類的AOP實現

1、在Spring中,使用(ProxyFactoryBean )是創建AOP代理的基本方式。
2、以下不屬於ProxyFactoryBean類中的常用可配置屬性的是。(C)
A: target
B: proxyInterfaces
C: targetClass
D: interceptorNames

3.4 AspectJ開發

1、AspectJ框架中註解(@Pointcut )用於定義切入點表達式,在使用時還需定義一個包含名字和任意參數的方法簽名來表示切入點名稱。
2、在Spring配置文件中,aop:aspect子元素的pointcut-ref屬性用於指定一個已經存在的(切入點名稱)。
3、在Spring的配置文件中,配置切面使用的是(aop:aspect)元素。
4、如果在同一個連接點有多個通知需要執行,那麼在同一切面中,目標方法之前的前置通知和環繞通知的執行順序是未知的,目標方法之後的後置通知和環繞通知的執行順序也是未知的。( √ )
5、AspectJ框架中的註解@After用於定義最終final通知,不管是否異常,該通知都會執行。( √ )
6、Spring配置文件中的元素下可以包含多個aop:config元素,一個aop:config元素中又可以包含屬性和子元素,其子元素包括aop:pointcutaop:advisoraop:aspect。( √ )
7、以下哪種類型不是Spring中的通知類型。( D )
A: 異常通知
B: 前置通知
C: 後置通知
D: 最終通知
8、關於AspectJ註解的介紹,說法錯誤的是。( D )
A: @Aspect用於定義一個切面
B: @Pointcut用於定義切入點表達式
C: @Before用於定義前置通知,相當於BeforeAdvice
D: @After用於定義後置通知,相當於AfterReturningAdvice
9、關於AspectJ註解的介紹,說法錯誤的是。( D )
A: @Aspect用於定義一個切面
B: @Pointcut用於定義切入點表達式
C: @Before用於定義前置通知,相當於BeforeAdvice
D: @After用於定義後置通知,相當於AfterReturningAdvice

第4章 Spring的數據庫開發

4.1 Spring JDBC

1、JDBC連接數據庫時需要4個基本屬性,包括有( driverClassName )、url、username和password。
2、JdbcTemplate類的繼承關係十分簡單。它繼承自抽象類(JdbcAccessor),同時實現了JdbcOperations接口。
3、定義jdbcTemplate時,需要將dataSource注入到jdbcTemplate中。( √ )
4、JdbcOperations接口定義了在JdbcTemplate類中可以使用的操作集合,包括添加、修改、查詢和刪除等操作。( √ )
5、Spring JDBC模塊主要由4個包組成,其中不包括。( C )
A: core(核心包)
B: dataSource(數據源包)
C: driverClass(數據庫驅動包)
D: support(支持包)
6、JdbcTemplate的直接父類是。( A )
A: JdbcAccessor
B: JdbcOperations
C: JdbcSupper
D: Object
7、JdbcTemplate類包含在Spring JDBC模塊的哪個包中。( A )
A: 核心包
B: 數據源包
C: 對象包
D: 支持包

4.2 Spring JdbcTemplate的常用方法

1、JdbcTemplate類中還提供了大量的( query() )方法來處理各種對數據庫表的查詢操作。
2、JdbcTemplate類中的( update() )方法可以完成插入、更新和刪除數據的操作。
3、( @Test )就是Junit4用來測試的註解,要測試哪個方法,只需要在相應測試的方法上添加此註解即可。
4、在使用Junit進行單一測試時,JUnit視圖窗口的進度條爲綠色表明運行結果正確;如果進度條爲紅色則表示有錯誤,並且會在窗口中顯示所報的錯誤信息。( √ )
5、JdbcTemplate類中還提供了大量的query()方法來處理各種對數據庫表的查詢操作。( √ )
6、在JdbcTemplate類中,提供了大量的更新和查詢數據庫的方法,我們就是使用的這些方法來操作數據庫的。( √ )
7、下面關於update()方法描述錯誤的是。( A )
A: update()方法可以完成插入、更新、刪除和查詢數據的操作
B: 在JdbcTemplate類中,提供了一系列的update()方法
C: update()方法執行後,會返回受影響的行數
D: update()方法返回的參數是int類型
8、下面描述中,關於query()方法說法錯誤的是。( C )
A: List query(String sql, RowMapper rowMapper)會執行String類型參數提供的SQL語句,並通過RowMapper返回一個List類型的結果。
B: List query(String sql, PreparedStatementSetter pss, RowMapper rowMapper)會根據String類型參數提供的SQL語句創建PreparedStatement對象,通過RowMapper將結果返回到List中。
C: List query(String sql, Object[] args, RowMapper rowMapper)會將args參數綁定到SQL語句中,並通過RowMapper返回一個Object類型的單行記錄。
D: queryForList(String sql,Object[] args, class elementType)可以返回多行數據的結果,但必須是返回列表,elementType參數返回的是List元素類型。

第5章 Spring的事務管理

5.1 Spring事務管理概述

1、在Spring的所有JAR包中,包含一個名爲(spring-tx.RELEASE.jar)的JAR包,該包就是Spring提供的用於事務管理的依賴包。
2、聲明式事務管理:是通過(AOP技術 )實現的事務管理。
3、編程式事務管理是通過編寫代碼實現的事務管理,包括定義事務的開始、正常執行後的事務提交和異常時的事務回滾。( √ )
4、Spring的聲明式事務管理可以通過兩種方式來實現,一種是基於XML的方式,另一種是基於Annotation的方式。( √ )
5、以下有關事務管理方式相關說法錯誤的是。( B )
A: Spring中的事務管理分爲兩種方式:一種是傳統的編程式事務管理,另一種是聲明式事務管理。
B: 編程式事務管理:是通過AOP技術實現的事務管理,就是通過編寫代碼實現的事務管理,包括定義事務的開始、正常執行後的事務提交和異常時的事務回滾。
C: 聲明式事務管理:其主要思想是將事務管理作爲一個“切面”代碼單獨編寫,然後通過AOP技術將事務管理的“切面”代碼植入到業務目標類中。
D: 聲明式事務管理最大的優點在於開發者無需通過編程的方式來管理事務,只需在配置文件中進行相關的事務規則聲明,就可以將事務規則應用到業務邏輯中。
6、以下有關Spring事務管理及核心接口說法錯誤的是。( D )
A: PlatformTransactionManager接口是Spring提供的平臺事務管理器,主要用於管理事務。
B: TransactionDefinition接口是事務定義(描述)的對象,該對象中定義了事務規則,並提供了獲取事務相關信息的方法。
C: TransactionStatus接口是事務的狀態,它描述了某一時間點上事務的狀態信息。
D: 在事務管理過程中,傳播行爲可以控制是否需要創建事務以及如何創建事務,通常情況下,對於數據的查詢、插入、更新和刪除操作,必須進行事務管理。
7、下列選項中,哪一個不是Spring中事務管理的核心接口。( D )
A: PlatformTransactionManager
B: TransactionDefinition
C: TransactionStatus
D: TransactionManager

5.2 聲明式事務管理

1、Spring的聲明式事務管理可以通過兩種方式來實現,一種是基於XML的方式,另一種是基於( Annotation )的方式。
2、使用基於註解方式的事務管理需要在使用事務的Spring Bean類或者Bean類的方法上添加註解( @Transactional )。
3、Spring2.0以後,提供了tx命名空間來配置事務,tx命名空間下提供了( tx:advice )元素來配置事務的通知(增強處理)。
4、基於XML方式的聲明式事務管理是通過在配置文件中配置事務規則的相關聲明來實現的。( √ )
5、以下關於@Transactional註解可配置的參數信息及秒正確的是。( A )
A: value用於指定需要使用的事務管理器,默認爲"";
B: read-only用於指定事務是否只讀,默認爲true;
C: isolation用於指定事務的隔離級別,默認爲Isolation.READ_COMMITTED;
D: propagation用於指定事務的傳播行爲,默認爲Propagation. SUPPORTS;
6、以下基於XML方式的聲明式事務管理配置文件中tx:advice元素的子元素tx:method屬性描述錯誤的是。( B )
A: name:該屬性爲必選屬性,它指定了與事務屬性相關的方法名
B: propagation:用於指定事務的傳播行爲,它的默認值爲SUPPORTS
C: isolation:該屬性用於指定事務的隔離級別,其默認值爲DEFAULT
D: read-only:該屬性用於指定事務是否只讀,其默認值爲false

第6章 初識MyBatis

6.1 什麼是MyBatis

1、( MyBatis )是當前主流的Java持久層框架之一,它與Hibernate一樣,也是一種ORM框架。
2、ORM就是一種爲了解決面向對象與關係型數據庫中數據類型不匹配的技術,它通過描述Java對象與數據庫表之間的映射關係,自動將Java應用程序中的對象持久化到關係型數據庫的表中。( √ )

6.2 MyBatis的下載和使用

1、使用MyBatis框架非常簡單,只需在應用程序中引入MyBatis框架lib目錄中的全部JAR包以及數據庫驅動包即可進行項目運行。( × )
2、使用ORM框架後,應用程序不再直接訪問底層數據庫,而是以()的方式來操作持久化對象(PO,即Persisent Object)。( C )
A: 面向業務B: Hibernate C: 面向對象 D: MyBatis

6.3 MyBatis的工作原理

1、mybatis-config.xml作爲MyBatis的全局配置文件,配置了MyBatis的運行環境等信息,其中主要內容是獲取( 數據庫連接 )。
2、有關MyBatis工作原理說法錯誤的是。( C )
A: MyBatis的全局配置文件配置了MyBatis的運行環境等信息,其中主要內容是獲取數據庫連接
B: MyBatis映射文件中配置了操作數據庫的SQL語句,需要在MyBatis的全局配置文件中加載才能執行
C: 可以通過MyBatis的環境等配置信息構建會話對象SqlSession
D: SqlSession對象,該對象中包含了執行SQL的所有方法

6.4 MyBatis入門程序

1、MyBatis的刪除操作在映射文件中是通過配置( )元素來實現的。
2、MyBatis映射文件中元素是配置文件的根元素,它包含一個( namespace )屬性,該屬性爲這個指定了唯一的命名空間。
3、使用MySQL中的(concat())函數進行字符串拼接,可以有效防止模糊查詢時可能出現的SQL注入問題。
4、MyBatis映射文件中元素是配置文件的根元素,它包含一個namespace屬性,該屬性爲這個指定了唯一的命名空間。( × )
5、MyBatis的更新操作也需要進行事務提交。( √ )
6、創建的映射文件中的SQL語句要以面向對象的寫法進行書寫。( × )
7、MyBatis的刪除操作有關說法錯誤的是。( D )
A: MyBatis的刪除操作在映射文件中是通過配置元素來實現的。
B: MyBatis的刪除操作也需要進行事務提交。
C: MyBatis的刪除操作執行了SqlSession的delete()方法。
D: MyBatis的刪除操作和添加操作時,也需要封裝整個實體類。
8、MyBatis的更新操作有關說法錯誤的是。( D )
A: MyBatis的更新操作在映射文件中是通過配置元素來實現的 。
B: MyBatis的更新操作也需要進行事務提交。
C: MyBatis的更新操作執行了SqlSession的update()方法 。
D: MyBatis的更新操作和添加操作時,只需要將insert()方法改爲updat()方法即可。
9、關於MyBatis模糊查詢中進行SQL字符串拼接時,說法錯誤的是。( C )
A: 使用“${}”進行SQL字符串拼接時,無法防止SQL注入問題。
B: 可以使用MySQL中的concat()函數進行字符串拼接。
C: 使用MySQL中的concat()函數進行字符串拼接,也無法防止SQL注入。
D: 使用MySQL中的concat()函數進行字符串拼接,導致數據庫移植性變差。

第7章 MyBatis的核心配置

7.1 MyBatis的核心對象

1、SqlSessionFactory是MyBatis框架中十分重要的對象,它是單個數據庫映射關係經過編譯後的內存鏡像,構建每一個數據庫的SqlSessionFactory實例時,建議使用原型模式。( √ )
2、SqlSession是MyBatis框架中另一個重要的對象,SqlSession對象包含了數據庫中所有執行SQL操作的方法,因爲數據庫操作相類似所以SqlSession對象可以被共享。( × )

7.2 配置文件

1、對於數據源的配置,MyBatis框架提供了UNPOOLED、( POOLED )和JNDI三種數據源類型。
2、MyBatis框架提供了許多默認別名,由於別名不區分大小寫,所以在使用時要注意重複定義的覆蓋問題。( √ )
3、關於元素說法錯誤的是。( D )
A: 元素就是用來在配置文件中註冊自定義的類型處理器的,它的使用方式有兩種。
B: 通過元素的子元素就可以配置單個類型處理器。
C: 通過元素的子元素可以配置包下的所有類型處理器。
D: 元素的子元素的handler屬性用於指定類型處理器所在的包名,系統會在啓動時自動的掃描com.itheima.type包下所有的文件,並把它們作爲類型處理器。
4、有關MyBatis配置文件中元素的說法錯誤的是。( C )
A: 元素主要用於改變MyBatis運行時的行爲,例如開啓二級緩存、開啓延遲加載等。
B: 雖然不配置元素,也可以正常運行MyBatis,但是熟悉的配置內容以及它們的作用還是十分必要的。
C: 元素中延遲加載的全局開關的參數lazyLoadingEnabled默認開啓。
D: 元素的配置內容大多數都不需要開發人員去配置它,通常在需要時只配置少數幾項即可。

7.3 映射文件

1、當數據表中的列和需要返回的對象的屬性不完全一致, MyBatis是不會自動賦值的。此時,就可以使用( )元素進行處理。
2、元素的子元素用於表示哪個列是(主鍵 ),而()元素用於表示POJO和數據表中普通列的映射關係。
3、MyBaits映射文件中使用元素的( refid )屬性可以引用自定義的代碼片段,其屬性值爲自定義代碼片段的id。
4、MyBatis映射文件中的子元素的order屬性可以被設置爲( BEFORE )或( AFTER )。
5、的子元素和用於處理多表時的關聯關係。( √ )
6、MyBatis映射文件的元素的屬性與元素的屬性大部分相同,但還包含了3個特有屬性。( √ )
7、映射文件中可以包含多個id值相同的元素。( × )
8、與元素一樣,和元素在執行完之後,也會返回一個表示影響記錄條數的整數。( √ )
9、以下有關元素說法錯誤的是。( C )
A: 元素的作用就是定義可重用的SQL代碼片段,然後在其他語句中引用這一代碼片段。
B: 使用元素的refid屬性可以引用自定義的代碼片段。
C: 使用元素refid的屬性值爲自定義代碼片段的name。
D: 元素是元素的子元素。
10、以下有關MyBatis映射文件中元素說法正確的是。( C )
A: 元素用於映射插入語句,在執行完元素中定義的SQL語句後,沒有返回結果。
B: 元素的屬性與元素的屬性相同。
C: keyColumn屬性用於設置第幾列是主鍵,當主鍵列不是表中的第一列時需要設置。
D: useGeneratedKeys(僅對insert有用)此屬性會使MyBatis使用JDBC的getGeneratedKeys()方法來獲取由數據庫內部生產的主鍵。
11、以下關於元素及其屬性說法錯誤的是。( C )
A: 元素用來映射查詢語句,它可以幫助我們從數據庫中讀取出數據,並組裝數據給業務開發人員。
B: parameterType屬性表示傳入SQL語句的參數類的全限定名或者別名。
C: resultMap表示外部resultMap的命名引用,返回時可以同時使用resultType和resultMap
D: 在同一個映射文件中可以配置多個元素。

《推薦文章》
框架設計–第三章 Spring AOP–習題答案
框架設計–第四章 Spring的數據庫開發–習題答案
框架設計–第五章 Spring的事務管理–習題答案
框架設計–第六章 初識MyBatis–習題答案
框架設計–第七章 MyBatis的核心配置–習題答案

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章