• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

奋斗的软件工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

深入解析 Maven 与 MyBatis 测评题

深入解析 Maven 与 MyBatis 测评题

在 Java 开发中,Maven 和 MyBatis 是两个非常重要的工具。Maven 用于项目构建和依赖管理,而 MyBatis 是一个优秀的持久层框架,用于简化数据库操作。本文将通过八道测评题,深入解析 Maven 和 MyBatis 的相关知识点。


题目1(多选):

下列哪些是 Maven 的作用( )

选项 :

​ A. 管理插件
​ B. 管理依赖
​ C. 项目构建管理
​ D. 以上说法都不正确

答案: A, B, C

解析:

  • A. 管理插件: Maven 通过插件来执行各种构建任务,如编译、打包、测试等。
  • B. 管理依赖: Maven 通过 pom.xml 文件管理项目的依赖,自动下载所需的库文件。
  • C. 项目构建管理: Maven 提供了一套标准的项目构建生命周期,简化了项目的构建过程。
  • D. 以上说法都不正确: 错误,因为 A、B、C 都是 Maven 的作用。

题目2(多选):

关于 Maven 仓库,下列描述正确的是( )

选项 :

​ A. 远程仓库包括两类: 本地仓库和远程仓库
​ B. 远程仓库包括两类: 中央仓库和私服
​ C. Maven 仓库优先到中央仓库下载依赖
​ D. 使用 Maven 之前要先配置 Maven 的本地仓库和私服


分析:

选项 A: 远程仓库包括两类: 本地仓库和远程仓库

  • 你的理解: 远程仓库包括私服和中央仓库,本地仓库不属于远程仓库。
  • 正确性: 错误。
    • 原因: 远程仓库确实只包括中央仓库和私服,本地仓库是 Maven 自动生成的,不属于远程仓库。

选项 B: 远程仓库包括两类: 中央仓库和私服

  • 你的理解: 远程仓库包括中央仓库和私服。
  • 正确性: 正确。
    • 原因: 远程仓库确实分为中央仓库(Maven 官方提供的仓库)和私服(公司内部搭建的仓库)。

选项 C: Maven 仓库优先到中央仓库下载依赖

  • 你的理解: 配置了私服的情况下,Maven 仓库优先本地,本地找不到上私服,私服没有再去中央。
  • 正确性: 错误。
    • 原因: Maven 的依赖查找顺序是:
      1. 本地仓库:首先检查本地仓库是否存在依赖。
      2. 私服(如果有配置):如果本地仓库没有,则检查私服。
      3. 中央仓库:如果私服也没有,则从中央仓库下载。
      4. 其他远程仓库(如果有配置):最后检查其他远程仓库。
    • 因此,Maven 并不是优先到中央仓库下载依赖,而是优先本地仓库,然后是私服,最后才是中央仓库。

选项 D: 使用 Maven 之前要先配置 Maven 的本地仓库和私服

  • 我的理解: 在使用 Maven 之前,确实需要先配置 Maven 的本地仓库和私服。(习惯)
  • 正确性: 错误。
    • 原因:
      • 本地仓库:Maven 默认会在用户目录下生成一个本地仓库(如 ~/.m2/repository),不需要手动配置。
      • 私服:私服是可选的,通常在公司内部使用,个人开发时可以不配置。
      • 因此,使用 Maven 之前并不需要先配置本地仓库和私服。

我的选择:BD

  • B 正确:远程仓库包括中央仓库和私服。
  • D 错误:使用 Maven 之前不需要先配置本地仓库和私服。

正确答案:B


总结:

  • 选项 A:错误,远程仓库不包括本地仓库。
  • 选项 B:正确,远程仓库包括中央仓库和私服。
  • 选项 C:错误,Maven 优先本地仓库,然后是私服,最后才是中央仓库。
  • 选项 D:错误,使用 Maven 之前不需要先配置本地仓库和私服。

题目3(单选):

关于 Maven 项目构建的生命周期,下列描述错误的是( )

选项 :

​ A. clean 生命周期表示清除 Maven 项目的构建生成的文件
​ B. compile:编译项目的源码,一般来说编译的是 src/main/java 目录下的 Java 文件至项目输出的主 classpath 目录中
​ C. package:接收编译好的代码,打包成可以发布的格式,如 jar 和 war
​ D. install:将包安装到本地仓库,供其他 Maven 项目使用,不会执行之前的生命周期命令

答案: D

解析:

  • A. clean 生命周期表示清除 Maven 项目的构建生成的文件: 正确,clean 生命周期用于删除构建生成的文件。
  • B. compile:编译项目的源码: 正确,compile 阶段会将 src/main/java 目录下的 Java 文件编译成字节码文件。
  • C. package:打包成可以发布的格式: 正确,package 阶段会将编译后的代码打包成 jar、war 等格式。
  • D. install:不会执行之前的生命周期命令: 错误,install 阶段会执行之前的所有生命周期命令(如 compile 和 package),然后将生成的包安装到本地仓库。

题目4(单选):

关于 Maven 导入依赖和插件,下列描述错误的是( )

选项 :

​ A. 导入依赖的标签都书写在 dependencies 标签文本中
​ B. 导入一个外部依赖使用一个 dependency 标签
​ C. 导入一个插件使用一个 plugin 标签
​ D. plugin 标签属于 dependencies 标签的子标签

答案: D

解析:

  • A. 导入依赖的标签都书写在 dependencies 标签文本中: 正确,所有依赖都写在 dependencies 标签内。
  • B. 导入一个外部依赖使用一个 dependency 标签: 正确,每个依赖对应一个 dependency 标签。
  • C. 导入一个插件使用一个 plugin 标签: 正确,每个插件对应一个 plugin 标签。
  • D. plugin 标签属于 dependencies 标签的子标签: 错误,plugin 标签属于 build 标签的子标签,而不是 dependencies 标签。

题目5(单选):

关于 MyBatis 框架,下列描述错误的是( )

选项 :

​ A. MyBatis 框架底层封装的是 JDBC
​ B. MyBatis 可以提升开发效率
​ C. MyBatis 的不足是将业务逻辑和数据访问逻辑没有进行分离
​ D. MyBatis 解决了技术通用的问题

答案: D

解析:

  • A. MyBatis 框架底层封装的是 JDBC: 正确,MyBatis 是对 JDBC 的封装,简化了数据库操作。
  • B. MyBatis 可以提升开发效率: 正确,MyBatis 通过 SQL 映射简化了数据库操作。
  • C. MyBatis 的不足是将业务逻辑和数据访问逻辑没有进行分离: 正确,MyBatis 的 SQL 语句通常写在映射文件中,可能与业务逻辑耦合。
  • D. MyBatis 解决了技术通用的问题: 错误,MyBatis 并没有解决技术通用的问题,它主要用于简化数据库操作。

题目6(多选):

关于 MyBatis 框架整体架构,下列描述正确的是( )

选项 :

​ A. MyBatis 中可以有多个核心配置文件
​ B. MyBatis 中可以有多个映射文件
​ C. MyBatis 中核心配置文件需要关联映射文件
​ D. MyBatis 中无论哪种实现,对于映射文件的位置都没有硬性要求

答案: B, C

解析:

  • A. MyBatis 中可以有多个核心配置文件: 错误,MyBatis 通常只有一个核心配置文件(如 mybatis-config.xml)。
  • B. MyBatis 中可以有多个映射文件: 正确,一个项目中可以有多个映射文件。
  • C. MyBatis 中核心配置文件需要关联映射文件: 正确,核心配置文件通过 mappers 标签关联映射文件。
  • D. MyBatis 中无论哪种实现,对于映射文件的位置都没有硬性要求: 错误,映射文件的位置需要通过 mappers 标签指定。

题目7(单选):

关于 MyBatis 框架入门开发,下列描述错误的是( )

选项 :

​ A. 入门案例中使用代码获取接口代理对象方式,要求映射文件中 namespace 的属性值必须是接口全路径
​ B. 入门案例中使用代码获取接口代理对象方式,要求映射文件中 select 标签的 id 属性值必须是接口的方法名
​ C. 入门案例中使用代码获取接口代理对象方式,如果接口的方法有返回值,需要在 select 标签中书写 resultType 属性
​ D. SqlSessionFactory 类底层是 Connection 连接对象

答案: D

解析:

  • A. namespace 的属性值必须是接口全路径: 正确,namespace 必须与接口的全路径一致。
  • B. select 标签的 id 属性值必须是接口的方法名: 正确,id 必须与接口方法名一致。
  • C. 如果接口的方法有返回值,需要在 select 标签中书写 resultType 属性: 正确,resultType 用于指定返回值类型。
  • D. SqlSessionFactory 类底层是 Connection 连接对象: 错误,SqlSessionFactory 底层是数据库连接池,而不是直接的 Connection 对象。

题目8(单选):

关于 MyBatis 核心配置,下列描述错误的是( )

选项 :

​ A. mappers 标签可以关联映射文件,如果使用子标签 package,那么对于接口和映射文件没有要求
​ B. 通过 typeAliases 标签设置可以在使用实体类的时候不需要书写实体类全路径
​ C. settings 标签可以解决数据表字段名和实体类成员变量名满足经典命名封装数据的问题
​ D. 通过 properties 标签可以获取外部配置文件中的数据

答案: A

解析:

  • A. 如果使用子标签 package,那么对于接口和映射文件没有要求: 错误,使用 package 标签时,接口和映射文件的命名必须一致,且映射文件必须与接口在同一包下。
  • B. typeAliases 标签可以简化实体类路径: 正确,typeAliases 可以为实体类设置别名。
  • C. settings 标签可以解决命名映射问题: 正确,settings 中的 mapUnderscoreToCamelCase 可以解决下划线到驼峰命名的映射问题。
  • D. properties 标签可以获取外部配置文件中的数据: 正确,properties 标签用于加载外部配置文件。

总结

通过以上八道题的解析,我们深入理解了 Maven 和 MyBatis 的核心概念和配置。Maven 的依赖管理和构建生命周期是项目开发的基础,而 MyBatis 的配置和映射文件则是数据库操作的关键。

posted on 2024-12-10 23:29  周政然  阅读(52)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3