框架技術--第3~7章測試(期中測試)--習題答案

一、單項選擇題

  1. Spring JDBC模塊主要由4個包組成,其中不包括。( )
    core(核心包)
    dataSource(數據源包)
    driverClass(數據庫驅動包)
    support(支持包)
    [我的答案] driverClass(數據庫驅動包)

  2. 在Spring框架中,面向方面編程(AOP)的目標在於( )。
    編寫程序時無須關注其依賴組件的實現
    封裝JDBC訪問數據庫的代碼,簡化數據訪問層的重複性代碼
    將程序中涉及的公共問題集中解決
    可以通過Web服務調用
    [我的答案] 封裝JDBC訪問數據庫的代碼,簡化數據訪問層的重複性代碼

  3. 以下哪種類型不是Spring中的通知類型。( )
    異常通知
    前置通知
    後置通知
    代理通知
    [我的答案] 代理通知

  4. 關於AspectJ註解的介紹,說法錯誤的是。( )
    @Aspect用於定義一個切面
    @Pointcut用於定義切入點表達式
    @Before用於定義前置通知,相當於BeforeAdvice
    @After用於定義後置通知,相當於AfterReturningAdvice
    [我的答案] @After用於定義後置通知,相當於AfterReturningAdvice

  5. 以下關於@Transactional註解可配置的參數信息及描述,錯誤的是。( )
    value用於指定需要使用的事務管理器,默認爲""
    read-only用於指定事務是否只讀,默認爲true
    isolation用於指定事務的隔離級別,默認爲Isolation.n.DEFAULT
    propagation用於指定事務的傳播行爲,默認爲Propagation. REQUIRED
    [我的答案] value用於指定需要使用的事務管理器,默認爲""

  6. 以下基於XML方式的聲明式事務管理配置文件中< tx:advice>元素的子元素< tx:method>屬性描述錯誤的是。( )
    name:該屬性爲必選屬性,它指定了與事務屬性相關的方法名
    propagation:用於指定事務的傳播行爲,它的默認值爲SUPPORTS
    isolation:該屬性用於指定事務的隔離級別,其默認值爲DEFAULT
    read-only:該屬性用於指定事務是否只讀,其默認值爲false
    [我的答案] propagation:用於指定事務的傳播行爲,它的默認值爲SUPPORTS

  7. 以下有關< sql>元素說法錯誤的是。( )
    < sql>元素的作用就是定義可重用的SQL代碼片段,然後在其他語句中引用這一代碼片段
    使用< include>元素的refid屬性可以引用自定義的代碼片段
    使用< include>元素refid的屬性值爲自定義代碼片段的name
    < sql>元素是< mapper>元素的子元素
    [我的答案] 使用< include>元素refid的屬性值爲自定義代碼片段的name

  8. 下面描述中,關於query()方法說法錯誤的是。( )
    List query(String sql, RowMapper rowMapper)會執行String類型參數提供的SQL語句,並通過RowMapper返回一個List類型的結果
    List query(String sql, PreparedStatementSetter pss, RowMapper rowMapper)會根據String類型參數提供的SQL語句創建PreparedStatement對象,通過RowMapper將結果返回到List中
    List query(String sql, Object[] args, RowMapper rowMapper)會將args參數綁定到SQL語句中,並通過RowMapper返回一個Object類型的單行記錄
    queryForList(String sql,Object[] args, class elementType)可以返回多行數據的結果,但必須是返回列表,elementType參數返回的是List元素類型
    [我的答案] List query(String sql, Object[] args, RowMapper rowMapper)會將args參數綁定到SQL語句中,並通過RowMapper返回一個Object類型的單行記錄

  9. 關MyBatis工作原理說法錯誤的是。( )
    MyBatis的全局配置文件配置了MyBatis的運行環境等信息,其中主要內容是獲取數據庫連接
    MyBatis映射文件中配置了操作數據庫的SQL語句,需要在MyBatis的全局配置文件中加載才能執行
    可以通過MyBatis的環境等配置信息構建會話工廠SqlSessionFactory
    SqlSessionFactory對象,該對象中包含了執行SQL的所有方法
    [我的答案] 可以通過MyBatis的環境等配置信息構建會話工廠SqlSessionFactory

  10. 關於MyBatis模糊查詢中進行SQL字符串拼接時,說法錯誤的是。( )
    使用“${}”進行SQL字符串拼接時,無法防止SQL注入問題
    可以使用MySQL中的concat()函數進行字符串拼接
    使用MySQL中的concat()函數進行字符串拼接,也無法防止SQL注入
    使用MySQL中的concat()函數進行字符串拼接,導致數據庫移植性變差
    [我的答案] 使用MySQL中的concat()函數進行字符串拼接,也無法防止SQL注入

二、判斷題

  1. MyBatis的查詢操作也需要進行事務提交。( 錯誤 )

  2. 在MyBatis框架的核心配置文件中,< configuration>元素是配置文件的根元素,其子元素的配置順序不受限制。( 錯誤 )

  3. 編程式事務管理是通過編寫代碼實現的事務管理,包括定義事務的開始、正常執行後的事務提交和異常時的事務回滾。( 正確 )

  4. Spring配置文件中的< beans>元素下只可以包含1個< aop:config>元素。( 錯誤 )

  5. 使用MyBatis框架非常簡單,只需在應用程序中引入MyBatis框架mybatis核心包、lib目錄中的全部JAR包以及數據庫驅動包即可進行項目運行。( 正確 )

  6. 在使用Junit進行單一測試時,JUnit視圖窗口的進度條爲綠色表明運行結果正確;如果進度條爲紅色則表示有錯誤,並且會在窗口中顯示所報的錯誤信息。( 正確 )

  7. 聲明式事務管理的主要思想是將事務作爲一個“切面”代碼單獨編寫,然後通過OOP技術將事務管理的“切面”植入到業務目標類中。( 錯誤 )

  8. 如果想代理沒有實現接口的類,那麼可以使用JDK動態代理。( 正確 )

  9. MyBatis框架提供了許多默認別名,由於別名不區分大小寫,所以在使用時要注意重複定義的覆蓋問題。( 正確 )

  10. 定義jdbcTemplate時,需要將dataSource注入到jdbcTemplate中。( 正確 )

三、填空題

  1. mybatis-config.xml作爲MyBatis的全局配置文件,配置了MyBatis的運行環境等信息,其中主要內容是獲取( 數據庫連接 )。

  2. AOP術語中( Advice)表示AOP框架在特定的切入點執行的增強處理,即在定義好的切入點處所要執行的程序代碼.

  3. Spring2.0以後,提供了tx命名空間來配置事務,tx命名空間下提供了( < tx:advice> )元素來配置事務的通知(增強處理)。

  4. JDBC連接數據庫時需要4個基本屬性,包括有( driverClassName )、url、username和password。

  5. 在Spring配置文件中,< aop:aspect>子元素的pointcut-ref屬性用於指定一個已經存在的( 切入點名稱 )

  6. 在Spring的所有JAR包中,包含一個名爲(spring-tx.RELEASE.jar)的JAR包,該包就是Spring提供的用於事務管理的依賴包。

  7. < resultMap>元素的子元素用於表示主鍵列,而( < result> )元素用於表示POJO和數據表中普通列的映射關係。

  8. ( @Test )就是Junit4用來測試的註解,要測試哪個方法,只需要在相應測試的方法上添加此註解即可。

  9. 對於數據源的配置,MyBatis框架提供了UNPOOLED、( POOLED )和JNDI三種數據源類型。

  10. MyBatis映射文件中< mapper>元素是配置文件的根元素,它包含一個( namespace)屬性,該屬性爲這個< mapper>指定了唯一的命名空間。

推薦文章
框架技術–期中複習作業–習題答案

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