当前位置: 首页 > article >正文

【MyBatis】【基于轻量型架构的WEB开发】课程 课后习题 章节测试

mybatis关联查询、缓存、注解

一. 单选题

1. 下列关于 <collection> 元素的描述正确的是()。

A. MyBatis 就是通过 <collection> 元素来处理一对多关联关系的

B. <collection> 元素的属性与 <association> 元素完全相同

C. <collection> 元素只能使用嵌套查询方式

D. ofType 属性与 javaType 属性对应,它用于指定实体对象中所有属性所包含的元素类型

正确答案是 A.

解析:

  • B 选项错误是因为 <association> 使用 javaType 属性,而 <collection> 使用 ofType 属性;
  • C 选项错误是因为 <collection> 不仅可以使用嵌套查询方式,也可以使用嵌套结果方式;
  • D 选项错误是因为 ofType 用于指定集合元素的类型,而不是实体对象中的所有属性类型。

2. 关于 @Insert 注解的使用,下列代码书写正确的是()。

A. Insert("insert into tb_worker(name,age,sex,worker_id)" +"values(#{name},#{age},#{sex},#{worker_id})") int insertWorker(Worker worker);

B. @Insert("insert into tb_worker(name,age,sex,worker_id)" +"values(#{name},#{age},#{sex},#{worker_id})") int insertWorker(Worker worker);

C. @Insert("insert into tb_worker(name,age,sex,worker_id)" +"values(#{name} #{age} #{sex} #{worker_id})") int insertWorker(Worker worker);

D. @Insert("insert into tb_worker(name,age,sex,worker_id)" +"values({name},{age},{sex},{worker_id})") int insertWorker(Worker worker);

正确答案是 B.

解析:

  • A 选项缺少 @ 符号;
  • C 选项参数之间缺少逗号;
  • D 选项参数格式错误,应使用 ${} 或 #{}

3. 要求根据员工的 id 查找员工信息,下列使用 @Select 注解的代码书写正确的是()。

A. @Select(“select * from tb_worker where id = #{id}”)

B. @Select("select * from tb_worker where id = #id"

C. @Select("select * from tb_worker where id = ?")

D. @Select(“select * from tb_worker where id = {id}”)

正确答案是 A.

解析:

  • B 选项 #id 缺少 {}
  • C 选项使用 ? 而不是 #{}
  • D 选项 {id} 格式错误,应为 #{id}

二. 判断题

  1. MyBatis的@Insert注解就是将SQL语句直接写在接口上,使得代码书写更加简单,减少了大量的XML文件的配置。

     

    正确答案是 A. 对。

  2. MyBatis中,核心配置文件中的内容的扫描方式是从上到下扫描

     

    正确答案是 A. 对。见教材15页。

     

    解析:配置文件中的元素按照它们出现的顺序被解析和处理。

  3. MyBatis中多对多关联映射同样有嵌套查询和嵌套结果两种关联方式。

     

    正确答案是 A. 对。

  4. MyBatis一级缓存被清空之后,再次使用SQL查询语句访问数据库时,MyBatis会重新访问数据库。

     

    正确答案是 A. 对。

  5. 关系型数据库的关联关系中,在“一”的一方,添加“多”的一方的主键作为外键。

     

    正确答案是 B. 错。

     

    解析:应该在“多”的一方添加“一”方的主键为外键。

  6. MyBatis中,@Param注解的功能是指定SQL语句中的参数,通常用于SQL语句中参数比较多的情况。

     

    正确答案是 A. 对。

  7. MyBatis中,@Update注解的参数可以是一条插入语句,也可以是一条更新语句

     

    正确答案是 A. 对。

     

    解析:在MyBatis中,@Update 注解通常用于映射更新(UPDATE)或删除(DELETE)类型的SQL语句。虽然它的名称是 @Update,但它不仅仅局限于更新操作,也可以用于执行插入(INSERT)语句。

  8. 在数据库中,表与表之间的多对多关联关系通常使用一个中间表来维护

     

    正确答案是 A. 对。

  9. <association>元素只有一种配置方式,即嵌套结果方式。

     

    正确答案是 B. 错。

     

    解析:<association> 元素支持嵌套查询和嵌套结果方式。

  10. 在@Results注解中,可以包含多个@Result注解,一个@Result注解完成实体类中一个属性和数据表中一个字段的映射。

     

    正确答案是 A. 对。见教材75页。

三. 填空题

  1. <association>元素的【select】属性用于指定引入嵌套查询的子SQL语句。

  2. 在@Result注解中,【property】属性用来指定POJO中的关联属性。

  3. MyBatis的二级缓存是【Mapper】级别的缓存。

  4. <collection>元素的属性中,用于指定实体类对象中集合类属性所包含的元素类型的是【ofType】。

  5. 在使用<association>元素时,它的fetchType属性有【lazy】和eager两个属性值。

  6. MyBatis使用【@Many】注解实现数据表的一对多关联查询,它作用等同于XML配置文件中的<collection>元素。

  7. 【@Delete】注解用于映射删除语句,其作用等同于XML配置文件中的<delete>元素。

四. 多选题

下列属于<cache>元素的eviction属性可选值的是()。

A. FIFO

B. LRU

C. SOFT

D. WEAK

正确答案是 ABCD

解析:<cache>元素的eviction属性用于设置缓存的回收策略,可选值包括FIFO(先进先出)、LRU(最近最少使用)、SOFT(软引用)、WEAK(弱引用)。这些策略决定了当缓存达到其容量限制时,哪些条目应该被移除。


http://www.kler.cn/a/383744.html

相关文章:

  • 浏览器内置对象XMLHttpRequest
  • OpenResty 1.27.1.1 已经正式发布
  • 题目练习之二叉树那些事儿(续集)
  • sql报错信息将字符串转换为 uniqueidentifier 时失败
  • LeetCode:3254. 长度为 K 的子数组的能量值 I(模拟 Java)
  • Centos Linux 7 搭建邮件服务器(postfix + dovecot)
  • 基于C++深度优先遍历迷宫
  • 如何将数据从 AWS S3 导入到 Elastic Cloud - 第 3 部分:Elastic S3 连接器
  • Java 8 Stream用法与常见问题和解决方式
  • Redis内存管理——针对实习面试
  • Charles简单压力测试
  • Unity中RTS游戏的设计模式处理: 游戏中的对象选择和命令委托的基本框架
  • 解读JobScheduler的jobs.xml
  • 判断二叉搜索树(递归)
  • 【LeetCode】【算法】647. 回文子串
  • 卡码网KamaCoder 127. 骑士的攻击
  • 梧桐数据库之查询特定日期的套餐价格分享
  • (超级详细版)Java基础:Java常用变量详解
  • T507 buildroot linux4.9之MCP2515 can网络开发调试
  • 耕地类项目知识点汇总(持续完善中……)
  • ubuntu22.04安装conda
  • 鸿蒙-promptAction.showToast基于PC屏幕底部提示
  • Ubuntu 安装 RTL8811cu 网卡驱动
  • CTFshow之信息收集第1关到10关。详细讲解
  • SpringBoot基础系列学习(二):配置详解
  • 汉诺塔问题代码分享及思路分享(c基础)