还剩7页未读,继续阅读
文本内容:
全面整理MyBatis面试问题和答案
一、单选题
1.MyBatis中,用于封装SQL映射语句的文件是()(1分)A.pojo.xmlB.mapper.xmlC.applicationContext.xmlD.spring.xml【答案】B【解析】MyBatis中,mapper.xml文件用于封装SQL映射语句
2.在MyBatis中,若要使用动态SQL,通常使用()(2分)A.chooseB.ifC.foreachD.where【答案】B【解析】if标签用于根据条件动态生成SQL语句
3.MyBatis中,用于表示一对多关系的标签是()(1分)A.associationB.collectionC.elementD.select【答案】B【解析】collection标签用于表示一对多关系
4.MyBatis中,若要设置SQL语句的返回值为自定义类型,使用()(2分)A.resultMapB.sqlC.parameterMapD.selectKey【答案】A【解析】resultMap标签用于设置SQL语句的返回值为自定义类型
5.MyBatis中,用于缓存一级缓存的标签是()(1分)A.cacheB.flushCacheC.sessionD.mapper【答案】A【解析】cache标签用于缓存一级缓存
6.MyBatis中,用于执行插入、更新、删除操作的标签是()(2分)A.selectB.insertC.updateD.delete【答案】B、C、D【解析】insert、update、delete标签用于执行插入、更新、删除操作
7.MyBatis中,用于传递参数的标签是()(1分)A.inputB.parameterC.argD.value【答案】A【解析】input标签用于传递参数
8.MyBatis中,用于定义可重用的SQL片段的标签是()(2分)A.sqlB.includeC.selectD.insert【答案】A【解析】sql标签用于定义可重用的SQL片段
9.MyBatis中,用于实现级联查询的标签是()(1分)A.associationB.collectionC.elementD.select【答案】A【解析】association标签用于实现级联查询
10.MyBatis中,用于表示多对多关系的标签是()(2分)A.associationB.collectionC.elementD.select【答案】B【解析】collection标签用于表示多对多关系
二、多选题(每题4分,共20分)
1.以下哪些属于MyBatis的配置文件?()A.pojo.xmlB.mapper.xmlC.applicationContext.xmlD.spring.xml【答案】A、B【解析】MyBatis的配置文件包括pojo.xml和mapper.xml
2.以下哪些标签可用于动态SQL?()A.chooseB.ifC.foreachD.where【答案】A、B、C、D【解析】choose、if、foreach、where标签都可用于动态SQL
3.以下哪些标签可用于缓存?()A.cacheB.flushCacheC.sessionD.mapper【答案】A【解析】cache标签用于缓存
4.以下哪些标签可用于定义可重用的SQL片段?()A.sqlB.includeC.selectD.insert【答案】A【解析】sql标签用于定义可重用的SQL片段
5.以下哪些标签可用于级联查询?()A.associationB.collectionC.elementD.select【答案】A【解析】association标签用于级联查询
三、填空题
1.MyBatis中,用于封装SQL映射语句的文件是______(2分)【答案】mapper.xml
2.MyBatis中,用于表示一对多关系的标签是______(2分)【答案】collection
3.MyBatis中,用于缓存一级缓存的标签是______(2分)【答案】cache
4.MyBatis中,用于执行插入、更新、删除操作的标签是______、______、______(4分)【答案】insert、update、delete
5.MyBatis中,用于传递参数的标签是______(2分)【答案】input
四、判断题
1.MyBatis中,mapper.xml文件必须放在resources目录下()(2分)【答案】(√)【解析】MyBatis中,mapper.xml文件必须放在resources目录下
2.MyBatis中,resultMap标签用于设置SQL语句的返回值为自定义类型()(2分)【答案】(√)【解析】resultMap标签用于设置SQL语句的返回值为自定义类型
3.MyBatis中,cache标签用于缓存二级缓存()(2分)【答案】(×)【解析】cache标签用于缓存一级缓存
4.MyBatis中,association标签用于表示多对多关系()(2分)【答案】(×)【解析】association标签用于实现级联查询
5.MyBatis中,collection标签用于表示一对多关系()(2分)【答案】(√)【解析】collection标签用于表示一对多关系
五、简答题
1.简述MyBatis的一级缓存和二级缓存的区别(5分)【答案】MyBatis的一级缓存是SqlSession级别的缓存,用于缓存单个SqlSession中的查询结果,默认开启二级缓存是Mapper级别的缓存,用于缓存不同SqlSession之间的查询结果,需要手动配置开启
2.简述MyBatis中动态SQL的几种常用标签(5分)【答案】MyBatis中动态SQL的常用标签包括choose、if、foreach、where这些标签可以根据条件动态生成SQL语句
3.简述MyBatis中resultMap的作用(5分)【答案】MyBatis中resultMap用于设置SQL语句的返回值为自定义类型,通过映射列和属性,可以将查询结果映射到指定的Java对象中
六、分析题
1.分析MyBatis中一级缓存的工作原理和适用场景(10分)【答案】MyBatis的一级缓存是SqlSession级别的缓存,当执行查询操作时,MyBatis会将查询结果存储在一级缓存中当再次执行相同的查询操作时,MyBatis会先从一级缓存中查找结果,如果找到则直接返回,否则再执行查询操作并将结果存储在一级缓存中一级缓存适用于单次SqlSession中的重复查询,可以提高查询效率
七、综合应用题
1.设计一个MyBatis的mapper.xml文件,实现一个用户表的增删改查操作(25分)【答案】```xmlmappernamespace=com.example.mapper.UserMapper!--定义可重用的SQL片段--sqlid=userColumnsid,username,password,email/sql!--定义resultMap--resultMapid=userResultMaptype=com.example.entity.Useridcolumn=idproperty=id/resultcolumn=usernameproperty=username/resultcolumn=passwordproperty=password/resultcolumn=emailproperty=email//resultMap!--查询用户--selectid=selectUserByIdresultMap=userResultMapSELECTincluderefid=userColumns/FROMusersWHEREid={id}/select!--插入用户--insertid=insertUserINSERTINTOusersusername,password,emailVALUES{username},{password},{email}/insert!--更新用户--updateid=updateUserUPDATEusersSETusername={username},password={password},email={email}WHEREid={id}/update!--删除用户--deleteid=deleteUserByIdDELETEFROMusersWHEREid={id}/delete/mapper```---标准答案---
一、单选题
1.B
2.B
3.B
4.A
5.A
6.B、C、D
7.A
8.A
9.A
10.B
二、多选题
1.A、B
2.A、B、C、D
3.A
4.A
5.A
三、填空题
1.mapper.xml
2.collection
3.cache
4.insert、update、delete
5.input
四、判断题
1.(√)
2.(√)
3.(×)
4.(×)
5.(√)
五、简答题
1.MyBatis的一级缓存是SqlSession级别的缓存,用于缓存单个SqlSession中的查询结果,默认开启二级缓存是Mapper级别的缓存,用于缓存不同SqlSession之间的查询结果,需要手动配置开启
2.MyBatis中动态SQL的常用标签包括choose、if、foreach、where这些标签可以根据条件动态生成SQL语句
3.MyBatis中resultMap用于设置SQL语句的返回值为自定义类型,通过映射列和属性,可以将查询结果映射到指定的Java对象中
六、分析题
1.MyBatis的一级缓存是SqlSession级别的缓存,当执行查询操作时,MyBatis会将查询结果存储在一级缓存中当再次执行相同的查询操作时,MyBatis会先从一级缓存中查找结果,如果找到则直接返回,否则再执行查询操作并将结果存储在一级缓存中一级缓存适用于单次SqlSession中的重复查询,可以提高查询效率
七、综合应用题
1.设计一个MyBatis的mapper.xml文件,实现一个用户表的增删改查操作。
个人认证
优秀文档
获得点赞 0