MyBatis第一次測試卷---錯題分析


1.在MyBatis的Mapper文件中,以下選項配置錯誤的是(A)  

正確答案是D  您的回答是A  回答錯誤

分析:此題考查MyBatis對於增刪改查的配置,選項d誤把parameterType寫成了resultType,parameterType表示參數配置而resultType表示返回值配置,因此這里選擇d

2.在一個MyBatis的應用中,關於SlqessionFactoyfBuilder,SqlsessionFactory以及Sqlsession的應用范圍和生命周期,以下說法錯誤的是(A)

正確答案是D  您的回答是A  回答錯誤

分析:此題目考查的是SqlSession的生命周期管理,SqlSessionFactoryBuilder因為可以直接實例化,並且創建SqlSessionFactory之后就銷毀,因此它是方法范圍,SqlSessionFactory應該在應用運行期間都存在,不能頻繁銷毀和創建,因此它是應用范圍,SqlSession是線程不安全的,不同線程之間不能共享使用,因此d不正確

3.以下關於MyBatis的使用場景描述錯誤的是(A)

正確答案是C  您的回答是A  回答錯誤

分析:

A描述正確:因為完全透明應該用JDBC,並不適合Mybatis

B描述正確:Mysql因為使用SQL語句映射,不同數據庫SQL語法不同,所以不適合MyBatis

D描述正確:Mybatis只支持相對動態SQL語句,SQL寫死在映射文件,不屬於完全動態

C描述錯誤:Mybatis的特點就是功能相對簡單時,性能很高,所以非常適合Mybatis,C描述說不適合Mybatis,是錯誤的

4.現有兩個實體類User.java和Address.java,代碼片段如下: D

正確答案是B  您的回答是D 回答錯誤

分析:使用collection, javaBean里的屬性不是普通屬性,而是一個集合,那么property:指的是User這個POJO里的屬性名(addressList) ofType:指的是addressList這個list里面存放的是:Address對象,result的column對應的sql語句中的字段名(這里起了個別名:a_id)

5.在MaBatis中,以下關於緩存說法錯誤的選項是(D)

正確答案是 C  您的答案是D 回答錯誤

分析:MyBatis的全局二級緩存開關默認為true。

6.關於ResultType取值錯誤的是(C)

 

正確答案是 A 您回答的是 C 回答錯誤

分析:esultType表示從該語句中返回的期望類型的類的完全限定名或別名,resultType=”Integer” 其中Integer不是別名,別名是integer,映射類型是java.lang.Integer

7.在Mybatis中,關於<resultmap>和<collection>元素說法錯誤的是(BC)  選兩項

 正確答案是 B,D 您回答的是 B,C 回答錯誤

分析:<p>&lt; collection&gt;通過type屬性指定集合的類型 property用於指定在Java實體類是保存集合關系的屬性名稱</p>

8.在Mybatis中,下列關於ResultType說法錯誤的是:(B)

正確答案是 C 您回答的是 B 回答錯誤

分析:選項C的說法錯誤,當pojo的屬性名與sql語句查詢出來的字段名不一致的時候,需要使用resultMap來進行結果的映射,不能使用resultType

9.有如下配置:  通過以下配置判斷,下列描述正確的是(C)

 

正確答案是 A 您回答的是 C 回答錯誤

分析:<p>resultMap元素的子元素collection用來處理&ldquo;一對多&rdquo;的關系。需要指定映射的Java實體類的屬性,屬性的javaType(一般為ArrayList), javaType屬性表示一個Java類的完全限定名,或一個類型別名(參加上面內建類型別名的列表)。如果你映射到一個JavaBean,MyBatis通常可以自動判斷類型。然而,如果你映射到的是HashMap,那么你應該明確地指定javaType來保證所需的行為。如果你映射到的是HashMap,那么你應該明確地指定javaType來保證所需的行為。列表中對象的類型ofType(Java實體類);對應的數據庫表的列名稱;因此正確答案選a</p>

10.關於MyBatis的全局配置文件中,settings元素設置項的默認值偉false的是(A)

正確答案是 D 您回答的是 A 回答錯誤

 分析:useGeneratedKeys:允許JDBC 生成主鍵。需要驅動器支持。如果設為了true,這個設置將強制使用被生成的主鍵,默認值為false,其他設置項都默認值為true

11.如果想讓MyBatis將日志信息輸出到屏幕,以下選項正確的是(A)

正確答案是 C 您回答的是 A 回答錯誤

分析:<!--強制指定MyBatis使用log4j作為日志日志框架,若不指定那么當部署到如Tomcat等應用容器時,會被容器設置為使用common-logging來記錄日志--> <settings> <setting name="logImpl" value="LOG4J"/> </settings> 在mybatis-config.xml中加入 <setting name="logImpl" value="STDOUT_LOGGING"/> 可以在控制台打印sql語句。

12.存在如下配置:以下選項說法錯誤的是(D)

正確答案是 B 您回答的是 D 回答錯誤

分析:B選項當title不為null時1=1和title = #{title}之間沒有AND連接同樣會有運行時異常  

           B選項很有參考性,不過光加1=1在where后面還不夠,需要同時在第一個if中的

           title前還加一個and就OK了!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM