【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(弱引用)。这些策略决定了当缓存达到其容量限制时,哪些条目应该被移除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/907918.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++ | Leetcode C++题解之第528题按权重随机选择

题目&#xff1a; 题解&#xff1a; class Solution { private:mt19937 gen;uniform_int_distribution<int> dis;vector<int> pre;public:Solution(vector<int>& w): gen(random_device{}()), dis(1, accumulate(w.begin(), w.end(), 0)) {partial_sum(…

opencv - py_imgproc - py_canny Canny边缘检测

文章目录 Canny 边缘检测目标理论OpenCV 中的 Canny 边缘检测其他资源 Canny 边缘检测 目标 在本章中&#xff0c;我们将学习 Canny 边缘检测的概念用于该目的的 OpenCV 函数&#xff1a;cv.Canny() 理论 Canny 边缘检测是一种流行的边缘检测算法。它由 John F. Canny 于1…

java、excel表格合并、指定单元格查找、合并文件夹

#创作灵感# 公司需求 记录工作内容 后端&#xff1a;JAVA、Solon、easyExcel、FastJson2 前端&#xff1a;vue2.js、js、HTML 模式1&#xff1a;合并文件夹 * 现有很多文件夹 想合并全部全部的文件夹的文件到一个文件夹内 * 每个部门发布的表格 合并全部的表格为方便操作 模…

数据结构作业day5

链栈&#xff0c;自己实现一遍&#xff0c;但是节点存储不是整数&#xff0c;存储学生信息&#xff08;年龄&#xff0c;分数&#xff0c;姓名&#xff09;三级引用。 1、建立学生信息结构体&#xff0c;将data改为学生信息结构体类型。 2、循环入栈和入队。 循环入栈代码 …

【学术精选】SCI期刊《Electronics》特刊“New Challenges in Remote Sensing Image Processing“

英文名称&#xff1a;New Challenges in Remote Sensing Image Processing 中文名称&#xff1a;"遥感图像处理的新挑战"特刊 期刊介绍 “New Challenges in Remote Sensing Image Processing”特刊隶属于《Electronics》期刊&#xff0c;聚焦遥感图像处理领域快速…

2024 CSS保姆级教程 - BFC详解

前言 - CSS中的文档流 在介绍BFC之前&#xff0c;需要先给大家介绍一下文档流。​ 我们常说的文档流其实分为定位流、浮动流、普通流三种。​ ​ 1. 绝对定位(Absolute positioning)​ 如果元素的属性 position 为 absolute 或 fixed&#xff0c;它就是一个绝对定位元素。​ 在…

数字化装配助力柔性制造与快速换型,驱动效率飞跃

数字化装配是利用先进的数字化技术&#xff0c;如三维建模、仿真分析、物联网、大数据、人工智能等&#xff0c;对装配过程进行精确设计、优化控制和智能管理的一种现代化生产方式。它打破传统装配依赖于人工经验和物理样机的局限&#xff0c;通过模拟环境进行预装配验证&#…

如何在服务器端对PDF和图像进行OCR处理

介绍 今天我想和大家分享一个我在研究技术资料时发现的很好玩的东西——Tesseract。这不仅仅是一个普通的库&#xff0c;而是一个用C语言编写的OCR神器&#xff0c;能够识别一大堆不同国家的语言。我一直在寻找能够处理各种文档的工具&#xff0c;而Tesseract就像是给了我一把…

QT——TCP网络调试助手

目录 一.项目展示 ​编辑 二.开发流程 三.QTcpServer、QTcpSocket、QUdpSocket类的学习 1.QTcpServer服务端 2.QTcpSocket客户端 3.Udp通信 四.网络调试助手 1.首先我们实现当用户选择不同协议类型时不同的UI组件如何切换 2.实现打开/关闭按键图片的切换 方式一&…

eclipse下载与安装(汉化教程)超详细

目录 一、下载eclipse安装包 三、配置eclipse 代码自动补全功能 安装汉化包 中英文切换 四、用eclipse写hello world 一、下载eclipse安装包 1、首先进入 eclipse官网 如下&#xff1a; 2、这里面有很多版本&#xff1b;我们小白一般选择第二个&#xff0c;向下滑动&…

[FE] React 初窥门径(四):React 组件的加载过程(render 阶段)

1. 回顾 前几篇文章中&#xff0c;我们采用了 VSCode 插件 CodeTour 来记录代码的执行过程&#xff0c; 并把相关的数据 .tour/ 放到了 github: thzt/react-tour 中。 截止到本文为之&#xff0c;我们总共记录了这些 code-tour&#xff0c; .tour/ ├── 2. 构建过程.tour ├─…

什么是数字签名技术?

信息安全五要素 名称说明机密性机密性是指网络信息不泄露给非授权的用户、实体或程序&#xff0c;能够防止非授权者获取信息完整性完整性是指网络信息或系统未经授权不能进行更改的特性可用性可用性是指合法许可的用户能够及时获取网络信息或服务的特性可控性可控性是指可以控…

人工智能原理实验一:知识的表示与推理实验

一、实验目的 本实验课程是计算机、智能、物联网等专业学生的一门专业课程&#xff0c;通过实验&#xff0c;帮助学生更好地掌握人工智能相关概念、技术、原理、应用等&#xff1b;通过实验提高学生编写实验报告、总结实验结果的能力&#xff1b;使学生对智能程序、智能算法等有…

虚拟机 Email 恢复专用工具:Virtual Machine Email Recovery

天津鸿萌科贸发展有限公司从事数据安全服务二十余年&#xff0c;致力于为各领域客户提供专业的数据恢复、数据备份解决方案与服务&#xff0c;并针对企业面临的数据安全风险&#xff0c;提供专业的相关数据安全培训。 天津鸿萌科贸发展有限公司是 SysTools 系列数据恢复、取证及…

HTML 基础标签——表单标签<form>

文章目录 1. `<form>` 标签:定义表单容器2. `<input>` 标签:多用途输入控件3. `<textarea>` 标签:多行文本输入框4. `<select>` 标签:下拉选择框5. `<option>` 标签:下拉菜单选项6. `<button>` 标签:按钮元素7. `<label>` 标签…

使用Jupyter Notebook进行数据科学项目

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用Jupyter Notebook进行数据科学项目 Jupyter Notebook 简介 安装 Jupyter Notebook 创建和管理 Notebook 编写和运行代码 示例…

详解RabbitMQ三种队列类型

RabbitMQ 是一个强大的消息队列系统&#xff0c;它提供了多种队列类型以满足不同的使用需求。本文将探讨三种主要队列类型&#xff1a;经典队列、仲裁队列和流式队列&#xff0c;并讨论它们的区别和选型建议。 经典队列&#xff08;Classic Queues&#xff09; 简介&#xff…

【AD】2-1 元件符号的绘制创建实例-电阻容/CHIP类器件

1.新建工程后&#xff0c;双击原理图库&#xff0c;点击Panels后&#xff0c;选择SCH Library&#xff0c;双击元器件可在右侧进行更改名称 2.点击视图&#xff0c;栅格&#xff0c;设置捕捉栅格为100mil 3.点击放置管脚&#xff0c;可按空格键进行旋转&#xff0c;按TAB键可以…

JDBC2(防止sql注入,数据库连接池)

防止SQL注入 sql注入&#xff1a;利用sql语句的语法特点&#xff0c;应用层输入特殊格式&#xff0c;让原有的sql语句失效 创建表结构 并加入数据 create table login(lid int primary key auto_increment,lname varchar(20),lpwd varchar(20),lsex varchar(2),laddr varcha…

基于SSM+微信小程序的订餐管理系统(点餐2)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的订餐管理系统实现了管理员和用户。管理端实现了 首页、个人中心、用户管理、菜品分类管理、菜品信息管理、订单信息管理、配送信息管理、菜品评价管理、订单投诉管理、…