單元7《MyBatis框架應(yīng)用基礎(chǔ)》測試試卷及答案_第1頁
單元7《MyBatis框架應(yīng)用基礎(chǔ)》測試試卷及答案_第2頁
單元7《MyBatis框架應(yīng)用基礎(chǔ)》測試試卷及答案_第3頁
單元7《MyBatis框架應(yīng)用基礎(chǔ)》測試試卷及答案_第4頁
單元7《MyBatis框架應(yīng)用基礎(chǔ)》測試試卷及答案_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

PAGEPAGE1單元7《MyBatis框架應(yīng)用基礎(chǔ)》測試試卷院系:專業(yè)班級:學(xué)生姓名:學(xué)號:………………題號一二三四五六總分分?jǐn)?shù)得分評卷人一、填空題(每空2分,共10分)

1.MyBatis是一款優(yōu)秀的持久層框架,它支持定制化SQL、存儲過程以及高級_________。2.MyBatis起源于Apache基金會的開源項目_________,后更名為MyBatis。3.MyBatis框架中,用于創(chuàng)建SqlSession實例的核心對象是_________。4.在MyBatis的實體映射文件中,用于接收輸入?yún)?shù)的占位符語法是_________。5.MyBatis配置文件mybatis-config.xml的根節(jié)點是_________。得分評卷人二、單項選擇題(每題2分,共20分)

1.下列關(guān)于MyBatis的描述,錯誤的是()。A.支持定制化SQLB.屬于全自動ORM框架C.可以使用XML或注解進(jìn)行配置D.將接口和Java的POJO映射成數(shù)據(jù)庫中的記錄2.以下哪個不是MyBatis的核心組件?()A.SqlSessionFactoryBuilderB.SqlSessionFactoryC.ConnectionPoolD.SqlSession3.在MyBatis中,負(fù)責(zé)執(zhí)行SQL語句并返回結(jié)果的對象是()。A.SqlSessionFactoryB.SqlSessionFactoryBuilderC.SqlSessionD.Executor4.在mybatis-config.xml配置文件中,用于配置數(shù)據(jù)庫連接信息的節(jié)點是()。A.`<configuration>`B.`<environments>`C.`<mappers>`D.`<dataSource>`5.在實體映射文件中,用于定義查詢操作的節(jié)點是()。A.`<query>`B.`<select>`C.`<retrieve>`D.`<find>`6.在`<select>`節(jié)點中,用于指定返回值類型的屬性是()。A.parameterTypeB.resultMapC.resultTypeD.returnType7.如果需要在SQL語句中進(jìn)行字符串拼接來接收參數(shù),應(yīng)該使用哪種語法?()A.#{參數(shù)名}B.${參數(shù)名}C.&{參數(shù)名}D.@{參數(shù)名}8.在XML中,用于轉(zhuǎn)義“<”符號的轉(zhuǎn)義符是()。A.`<`B.`>`C.`&`D.`'`9.關(guān)于SqlSession對象的描述,正確的是()。A.是線程安全的B.是重量級對象,創(chuàng)建后不應(yīng)頻繁銷毀C.可以直接通過new關(guān)鍵字創(chuàng)建D.一個SqlSession對應(yīng)數(shù)據(jù)庫中的一個連接池10.在MyBatis框架流程中,讀取配置文件并構(gòu)建SqlSessionFactory的對象是()。A.SqlSessionFactoryBuilderB.SqlSessionC.MapperD.Configuration得分評卷人三、多項選擇題(每題3分,共15分)

1.MyBatis框架的特點包括()。A.簡單易學(xué)B.編程靈活C.SQL與代碼分離D.提供多種標(biāo)簽支持動態(tài)SQLE.強(qiáng)制要求使用注解配置2.下列屬于MyBatis核心組件的有()。A.SqlSessionFactoryBuilderB.ConnectionC.SqlSessionFactoryD.SqlSessionE.SQLMapper3.在mybatis-config.xml配置文件中,`<environment>`節(jié)點內(nèi)可以配置的子節(jié)點包括()。A.`<transactionManager>`B.`<dataSource>`C.`<mappers>`D.`<properties>`E.`<settings>`4.在實體映射文件中,可以聲明的SQL操作節(jié)點有()。A.`<select>`B.`<insert>`C.`<update>`D.`<delete>`E.`<procedure>`5.關(guān)于MyBatis中參數(shù)傳遞的描述,正確的有()。A.`#{}`方式能有效防止SQL注入B.`${}`方式會將參數(shù)直接拼接進(jìn)SQL語句C.`#{}`方式底層使用PreparedStatementD.`${}`方式底層使用StatementE.兩種方式在安全性上沒有區(qū)別得分評卷人四、判斷題(每題1分,共10分)

()1.MyBatis是一個全自動的ORM框架,開發(fā)者無需編寫SQL語句。()2.SqlSessionFactory是線程安全的,可以被多個線程共享。()3.SqlSession對象也是線程安全的,可以在多線程環(huán)境下共享同一個實例。()4.MyBatis的配置文件必須命名為mybatis-config.xml。()5.在實體映射文件中,`<mapper>`節(jié)點的namespace屬性用于定義命名空間,其值可以隨意設(shè)置。()6.`parameterType`屬性在`<insert>`、`<update>`、`<delete>`節(jié)點中是必須設(shè)置的。()7.使用`${}`方式接收參數(shù)存在SQL注入的風(fēng)險。()8.在XML中,`>`符號的轉(zhuǎn)義符是`>`。()9.MyBatis只能通過XML文件進(jìn)行配置,不支持注解方式。()10.`<mappers>`節(jié)點用于在全局配置文件中注冊所有的實體映射文件。得分評卷人五、編程題(為程序中的每個空格劃線處補(bǔ)全相應(yīng)代碼)(每空4分,共20分)

請根據(jù)以下要求,補(bǔ)全MyBatis配置文件`mybatis-config.xml`中的缺失部分。要求:配置一個名為`development`的環(huán)境(作為默認(rèn)環(huán)境),使用JDBC事務(wù)管理器和POOLED數(shù)據(jù)源。數(shù)據(jù)庫驅(qū)動為`com.mysql.cj.jdbc.Driver`,URL為`jdbc:mysql://localhost:3306/mybatis_db`,用戶名為`root`,密碼為`123456`。并注冊一個位于`com/example/mapper/UserMapper.xml`的映射文件。<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-////DTDConfig3.0//EN""/dtd/mybatis-3-config.dtd"><configuration><environmentsdefault="______(1)______"><environmentid="development"><transactionManagertype="______(2)______"/><dataSourcetype="______(3)______"><propertyname="driver"value="______(4)______"/><propertyname="url"value="jdbc:mysql://localhost:3306/mybatis_db"/><propertyname="username"value="root"/><propertyname="password"value="123456"/></dataSource></environment></environments><mappers><mapperresource="______(5)______"/></mappers></configuration>得分評卷人六、簡答題(每題5分,共25分)

1.簡述MyBatis框架相比于Hibernate框架的主要特點(至少兩點)。2.請說明SqlSessionFactory和SqlSession在MyBatis框架中的作用與區(qū)別。3.在MyBatis的實體映射文件中,`#{}`和`${}`兩種參數(shù)接收方式有何區(qū)別?4.簡述MyBatis框架的基本工作流程(從讀取配置文件到執(zhí)行SQL)。5.在MyBatis編程中,為什么說SQL語句與應(yīng)用程序代碼分離是一種優(yōu)勢?**一、填空題**1.關(guān)系映射(或ORM)2.iBATIS(或IBatis)3.SqlSessionFactory4.#{參數(shù)名}5.`<configuration>`**二、單項選擇題**1.B2.C3.C4.B5.B6.C7.B8.A9.B10.A**三、多項選擇題**1.ABCD2.ACDE3.AB4.ABCD5.ABCD**四、判斷題**1.×2.√3.×4.×5.×6.×7.√8.√9.×10.√**五、編程題**(1)development(2)JDBC(3)POOLED(4)com.mysql.cj.jdbc.Driver(5)com/example/mapper/UserMapper.xml**六、簡答題**1.**答**:①MyBatis是半自動化框架,需要開發(fā)者編寫SQL,能進(jìn)行更細(xì)粒度的數(shù)據(jù)庫控制;Hibernate是全自動化框架,通過對象操作數(shù)據(jù)庫,SQL自動生成。②MyBatis學(xué)習(xí)曲線相對平緩,更貼近傳統(tǒng)JDBC編程;Hibernate相對復(fù)雜,但自動化程度高。2.**答**:**SqlSessionFactory**是重量級對象,線程安全,用于創(chuàng)建SqlSession實例,是MyBatis的核心,代表一個數(shù)據(jù)庫配置的編譯后鏡像。**SqlSession**是輕量級對象,非線程安全,代表一次數(shù)據(jù)庫會話,包含執(zhí)行SQL、管理事務(wù)等方法。Factory負(fù)責(zé)生產(chǎn)Session,Session負(fù)責(zé)具體的數(shù)據(jù)操作。3.**答**:`#{}`是預(yù)編譯處理(占位符),MyBatis會將其替換為`?`,然后使用PreparedStatement的set方法來安全賦值,能有效防止SQL注入。`${}`是字符串替換(拼接符),MyBatis會將參數(shù)值直接拼接進(jìn)SQL語句中,存在SQL注入風(fēng)險,但可以實現(xiàn)動態(tài)表名、列名等特殊需求。4.**答**:①讀取配置文件`mybatis-config.xml`和映射文件`Mapper.xml`。②通過`SqlSessionFactoryBuilder`的`build()`方法創(chuàng)建`SqlSessionFactory`對象。③通過`SqlSessionFactory`的`openSession()`方

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論