【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.rhkb.cn/news/463556.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaEE-多线程上

文章目录 线程概述进程/线程多线程的作用JVM关于线程资源的规范关于Java程序的运行原理 并发与并行并发(concurrency)并行(parallellism)并发编程与并行编程 线程的调度策略分时调度模型抢占式调度模型 创建线程线程类分析入门实现线程的第一种方式实现线程的第二种方式 线程的…

SQL 常用语句

目录 我的测试环境 学习文档 进入数据库 基础通关测验 语句-- 查 展示数据库&#xff1b; 进入某个数据库&#xff1b; 展示表&#xff1a; 展示某个表 desc 查询整个表&#xff1a; 查询特定列&#xff1a; 范围查询 等于特定值 不等于 介于 特定字符查询 Li…

[MySQL]DQL语句(一)

查询语句是数据库操作中最为重要的一系列语法。查询关键字有 select、where、group、having、order by、imit。其中imit是MySQL的方言&#xff0c;只在MySQL适用。 数据库查询又分单表查询和多表查询&#xff0c;这里讲一下单表查询。 基础查询 # 查询指定列 SELECT * FROM …

【Unity】鼠标点击获取世界坐标位置:物体移动至鼠标点击的位置

需求说明 鼠标点击3D场景时&#xff0c;可以获取其所在的世界坐标&#xff1b; 鼠标点击3D物体时&#xff0c;可以获取该物体&#xff1b; 鼠标点击3D物体时&#xff0c;可以让玩家移动至该物体&#xff1b; 成果展示 Scene部分 关于仓库栏的设置&#xff0c;物体如何进入…

使用nvm切换node版本失败

​ 使用nvm切换node版本失败&#xff08;原node版本v20.14.0&#xff0c;我使用nvm use 16.9.1切换node版本后&#xff0c;显示Now using node v16.9.1可当我使用命令node -v查看当前node版本时还是v20.14.0&#xff0c;意味着版本切换失败&#xff09;&#xff1a; 这个原因大…

Hive数据库操作语法

数据类型 内部表和外部表 内部表 &#xff08;CREATE TABLE table_name ......&#xff09;未被external关键字修饰的即是内部表&#xff0c; 即普通表。 内部表又称管理表,内部表数据存储的位置由hive.metastore.warehouse.dir参数决定&#xff08;默认&#xff1a;/user/h…

【Python TensorFlow】入门到精通

TensorFlow 是一个开源的机器学习框架&#xff0c;由 Google 开发&#xff0c;广泛应用于机器学习和深度学习领域。本篇将详细介绍 TensorFlow 的基础知识&#xff0c;并通过一系列示例来帮助读者从入门到精通 TensorFlow 的使用。 1. TensorFlow 简介 1.1 什么是 TensorFlow…

设计模式08-行为型模式1(命令模式/迭代器模式/观察者模式/Java)

五、行为型模式 **行为模式的定义&#xff1a;**行为型模式是对不同的对象之间划分职责和算法的抽象化。行为型模式定义了系统中对象之间的交互与通信&#xff0c;研究系统在运行时对象之间的相互通信与协作&#xff0c;进一步明确对象的职责&#xff0c;包括对系统中较为复杂的…

服务器作业2

关闭防火墙 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 配置文件 创建用户nfs-upload [rootlocalhost ~]# useradd -u 210 nfs-upload [rootlocalhost ~]# groupmod -g 210 nfs-upload 创建tom用户 [rootlocalhost ~]# useradd tom 查看to…

【数据结构】堆:建堆/向下调整/上向调整/堆排序/TOK问题

文章目录 前言堆的定义1.大小堆2.完全二叉树 堆的实现堆的数据结构初始化销毁取堆顶元素判断堆是否为空父结点和子结点下标关系&#xff08;重要&#xff09; 向下调整法-O(n)小堆版大堆版 向上调整法-nlog(n)堆的插入和删除插入(调用向上调整)删除(调用向下调整) 构建最大堆向…

java学习1

一、运算符 1.算术运算符 在代码中&#xff0c;如果有小数参与计算&#xff0c;结果有可能不精确 1-1.隐式转换和强制转换 数字进行运算时&#xff0c;数据类型不一样不能运算&#xff0c;需要转成一样的&#xff0c;才能运算 &#xff08;1&#xff09;隐式转换&#xff1a…

20.体育馆使用预约系统(基于springboot和vue的Java项目)

目录 1.系统的受众说明 2.开发环境与技术 2.1 Java语言 2.2 MYSQL数据库 2.3 IDEA开发工具 2.4 Spring Boot框架 3.需求分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 经济可行性 3.1.3 操作可行性 3.2 系统流程分析 3.3 系统性能需求 3.4 系统功能需求 4.系…

Halcon3D image_points_to_world_plane详解

分三个部分来聊聊这个算子 一,算子的参数介绍 二,算法的计算过程 三,举例实现 第一部分,算子的介绍 image_points_to_world_plane( : : CameraParam, WorldPose, Rows, Cols, Scale : X, Y) 参数介绍: CameraParam,:相机内参 WorldPose 世界坐标系,也叫物体坐标系(成…

【启程Golang之旅】并发编程构建简易聊天系统

欢迎来到Golang的世界&#xff01;在当今快节奏的软件开发领域&#xff0c;选择一种高效、简洁的编程语言至关重要。而在这方面&#xff0c;Golang&#xff08;又称Go&#xff09;无疑是一个备受瞩目的选择。在本文中&#xff0c;带领您探索Golang的世界&#xff0c;一步步地了…

无人机场景 - 目标检测数据集 - 夜间车辆检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;无人机场景夜间车辆检测数据集&#xff0c;真实场景高质量图片数据&#xff0c;涉及场景丰富&#xff0c;比如夜间无人机场景城市道路行驶车辆图片、夜间无人机场景城市道边停车车辆图片、夜间无人机场景停车场车辆图片、夜间无人机场景小区车辆图片、夜…

HTML学习笔记十

系列笔记目录 第一章 HTML的概述 第二章 URL简介 第三章 网页元素的属性 第四章 html字符编码 第五章 网页的语义结构 第六章 文本标签 第七章 列表标签 第八章 图像标签 第九章 链接标签 第十章 多媒体标签 多媒体标签 系列笔记目录前言一、简介二、常用标签2.1<video>2…

Thumb 汇编指令集,Thumb 指令编码方式,编译 Thumb 汇编代码

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ Thumb指令集 ARM 指令集&#xff1a;最早在 1985 年随第一代 ARM 处理器问世。ARM 指令集一开始是 32 位固定长度的指令&#xff0c;用于各种计算任务。 Thu…

【Clikhouse 探秘】ClickHouse 物化视图:加速大数据分析的新利器

&#x1f449;博主介绍&#xff1a; 博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家&#xff0c;WEB架构师&#xff0c;阿里云专家博主&#xff0c;华为云云享专家&#xff0c;51CTO 专家博主 ⛪️ 个人社区&#x…

【HarmonyOS NEXT】在 HarmonyOS NEXT 中实现优雅的加载动画

【HarmonyOS NEXT】在 HarmonyOS NEXT 中实现优雅的加载动画 在移动应用开发中&#xff0c;加载动画是提升用户体验的重要工具。在应用程序处理数据或加载页面时&#xff0c;为用户提供视觉反馈尤为关键。在这篇博客中&#xff0c;我们将探讨如何在 HarmonyOS NEXT 中使用 Sta…

Redis高级篇之缓存一致性详细教程

文章目录 0 前言1.缓存双写一致性的理解1.1 缓存按照操作来分 2. 数据库和缓存一致性的几种更新策略2.1 可以停机的情况2.2 我们讨论4种更新策略2.3 解决方案 总结 0 前言 缓存一致性问题在工作中绝对没办法回避的问题&#xff0c;比如&#xff1a;在实际开发过程中&#xff0c…