Mybatis面试系列六

1、Mybatis 动态sql有什么用?执行原理?有哪些动态sql?
Mybatis 动态 sql 可以在 Xml 映射文件内,以标签的形式编写动态 sql,执行原理
是根据表达式的值完成逻辑判断并动态拼接sql的功能。
Mybatis 提供了 9种动态 sql标签:trim | where | set | foreach | if | choose
| when | otherwise | bind。
2、Xml映射文件中,除了常见的select|insert|updae|delete
标签之外,还有哪些标签?
答:

<resultMap>、<parameterMap>、<sql>、<include>、
<selectKey>

,加上动态 sql 的 9 个标签,其中<sql>为 sql 片段标签,通过
<include>标签引入 sql 片段,<selectKey>为不支持自增的主键生成策略标
签。
3、Mybatis 的 Xml 映射文件中,不同的 Xml映射文件,id是否可以重复?
不同的Xml映射文件,如果配置了namespace,那么 id可以重复;如果没有配
置 namespace,那么 id 不能重复;
原因就是namespace+id 是作为 Map<String, MapperStatement>的 key
使用的,如果没有namespace,就剩下 id,那么,id重复会导致数据互相覆盖。
有了namespace,自然 id 就可以重复,namespace 不同,namespace+id 自然
也就不同。
4、为什么说Mybatis是半自动ORM映射工具?它与全自动
的区别在哪里?
Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联
集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。而Mybatis
在查询关联对象或关联集合对象时,需要手动编写sql来完成,所以,称之为半自
动 ORM映射工具。
5、 一对一、一对多的关联查询 ?

<mapper namespace="com.lcb.mapping.userMapper"><!--association 一对一关联查询--><select id="getClass" parameterType="int"resultMap="ClassesResultMap">select * from class c,teacher t where c.teacher_id=t.t_id and c.c_id=#{id}</select><resultMap type="com.lcb.user.Classes" id="ClassesResultMap"><!--实体类的字段名和数据表的字段名映射--><id property="id" column="c_id"/><result property="name" column="c_name"/><association property="teacher" javaType="com.lcb.user.Teacher"><id property="id" column="t_id"/><result property="name" column="t_name"/></association></resultMap><!--collection一对多关联查询--><select id="getClass2" parameterType="int" resultMap="ClassesResultMap2">select * from class c,teacher t,student s where c.teacher_id=t.t_id and c.c_id=s.class_id and c.c_id=#{id}</select><resultMap type="com.lcb.user.Classes" id="ClassesResultMap2"><id property="id" column="c_id"/><result property="name" column="c_name"/><association property="teacher" javaType="com.lcb.user.Teacher"><id property="id" column="t_id"/>
<result property="name" column="t_name"/></association><collection property="student" ofType="com.lcb.user.Student"><id property="id" column="s_id"/><result property="name" column="s_name"/></collection></resultMap></mapper>

阿里云618精选云产品限量热卖,助力低成本上云


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

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

相关文章

textarea 中的内容在word中显示换行不起作用

js文本换行在word显示 在JavaScript中&#xff0c;处理文本换行以确保它在Word中正确显示&#xff0c;通常需要将文本中的换行符转换为Word可识别的格式。在HTML中&#xff0c;换行通常是通过<br>标签来实现的&#xff0c;而在Word中&#xff0c;换行通常由段落标签<…

openGauss学习笔记-300 openGauss AI特性-AI4DB数据库自治运维-DBMind的AI子功能-SQL Rewriter SQL语句改写

文章目录 openGauss学习笔记-300 openGauss AI特性-AI4DB数据库自治运维-DBMind的AI子功能-SQL Rewriter SQL语句改写300.1 概述300.2 使用指导300.2.1 前提条件300.2.2 使用方法示例300.3 获取帮助300.4 命令参考300.5 常见问题处理openGauss学习笔记-300 openGauss AI特性-AI…

微服务之负载均衡器

1、负载均衡介绍 负载均衡就是将负载(工作任务&#xff0c;访问请求)进行分摊到多个操作单元(服务器&#xff0c;组件)上 进行执行。 根据负载均衡发生位置的不同&#xff0c; 一般分为服务端负载均衡和客户端负载均衡。 服务端负载均衡指的是发生在服务提供者一方&#xff…

学习了解JS的classlist

在JavaScript中&#xff0c;classList 是一个在DOM元素上用于操作元素类名的属性。它提供了一个比传统 className 属性更强大且更易于使用的方式来添加、移除和切换类名。 classList 不是一个函数&#xff0c;而是一个对象&#xff0c;它包含了几个方法&#xff0c;允许你以列…

Visual Studio 使用第三方库管理工具 vcpkg

一、介绍 Windows下开发C/C程序&#xff0c;少不了用开源的第三方库。比如线性代数和矩阵分析的库eigen&#xff0c;或者图像处理的OpenCV库。虽然这些库都是开源的&#xff0c;但是由于要编译debug和release版本的&#xff0c;32位以及64位的&#xff0c;如果像FFmpeg…

2022年5月起RabbitMQ社区停止了对CentOS7的支持

前言 CentOS 7 的 RabbitMQ RPM 软件包将于 2022 年 5 月停止使用&#xff0c;因为 CentOS 发行系列提供了过时版本的 OpenSSL 和 Linux 内核。 建议 CentOS 7 用户迁移到使用较新发行版的新集群 从 2022 年 5 月 1 日起&#xff0c;RabbitMQ 将停止对 CentOS 7 的支持。展望…

基于springboot实现校园组团平台系统项目【项目源码】计算机毕业设计

基于springboot实现校园组团平台系统的设计演示 SSM框架介绍 本课题程序开发使用到的框架技术&#xff0c;英文名称缩写是SSM&#xff0c;在JavaWeb开发中使用的流行框架有SSH、SSM、SpringMVC等&#xff0c;作为一个课题程序采用SSH框架也可以&#xff0c;SSM框架也可以&…

FullCalendar日历组件集成实战(14)

背景 有一些应用系统或应用功能&#xff0c;如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件&#xff0c;但功能比较简单&#xff0c;用来做数据展现勉强可用。但如果需要进行复杂的数据展示&#xff0c;以及互动操作如通过点击添加事件&#xff0…

每日一题——Python实现PAT乙级1028 人口普查 Keyboard(举一反三+思想解读+逐步优化)六千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 题目链接​编辑我的写法 专业点评 时间复杂度分析 空间复杂度分析 总结 我要更强…

解析Java中1000个常用类:Process类,你学会了吗?

在Java编程中,Process类是一个非常有用的工具,它允许开发者从应用程序内部启动和管理本地操作系统进程。 本文将详细探讨Java中Process类的用法,包括它的基本概念、常见操作、实际应用场景以及一些高级技巧。 一、Process类的基本概念 1.1 什么是Process类 在Java中,Pr…

Python基础教程(十八):MySQL - mysql-connector 驱动

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

碳化硅陶瓷膜良好的性能

碳化硅陶瓷膜是一种高性能的陶瓷材料&#xff0c;以其独特的物理和化学特性&#xff0c;在众多领域展现出了广泛的应用前景。以下是对碳化硅陶瓷膜的详细介绍&#xff1a; 一、基本特性 高强度与高温稳定性&#xff1a;碳化硅陶瓷膜是一种非晶态陶瓷材料&#xff0c;具有极高的…

ChatTTS

基于您的要求&#xff0c;我为您推荐一个开源项目——ChatTTS。 **项目名称&#xff1a;ChatTTS** ChatTTS是一个基于Python的自然语言处理项目&#xff0c;主要用于生成文本对话。该项目主要基于一种名为Text-to-Speech (TTS)的模型&#xff0c;可以模拟人类的语音对话。它提供…

从GAN到WGAN(02/2)

文章目录 一、说明二、GAN中的问题2.1 难以实现纳什均衡(Nash equilibrium)2.2 低维度支撑2.3 梯度消失2.4 模式坍缩2.5 缺乏适当的评估指标 三、改进的GAN训练四、瓦瑟斯坦&#xff08;Wasserstein&#xff09;WGAN4.1 什么是 Wasserstein 距离&#xff1f;4.2 为什么 Wassers…

mysql社区版可以用的聚类函数有哪些

MySQL社区版支持一系列聚类函数&#xff08;或称为聚合函数&#xff09;&#xff0c;这些函数用于对一组值执行计算并返回单个值。以下是MySQL中常用的一些聚类函数&#xff0c;并附带简要描述和相关数字或信息&#xff08;如适用&#xff09;&#xff1a; SUM() 功能&#x…

53.Python-web框架-Django开始第一个应用的多语言

针对上一篇的功能&#xff0c;本次仅对页面做了多语言&#xff0c;大家可以看看效果。 51.Python-web框架-Django开始第一个应用的增删改查-CSDN博客 目录 部门列表 新增部门 编辑部门 部门列表 源码 <!DOCTYPE html> {% load static %} {% load i18n %} <html …

JAVA开发 使用Apache PDFBox库生成PDF文件,绘制表格

1. 表格位置定点 2.执行效果展示&#xff08;截取PDF文件图片&#xff09; 3.执行代码 当我们使用Apache PDFBox库在PDF文件中创建带有表格的内容&#xff0c;需要遵循几个步骤。PDFBox本身并没有直接的API来创建表格&#xff0c;但我们可以通过定位文本、绘制线条和单元格矩形…

shell编程基础(第16篇:命令是什么?有哪些注意事项)

前言 前面我们已经使用过各种各样的命令&#xff0c;那么命令到底是什么呢&#xff1f;我们又该怎么理解该术语&#xff1f; 什么是命令&#xff1f; 命令是command的中文翻译&#xff0c;能在命令行中执行的是命令。因为早期的计算机只有文字界面&#xff0c;命令是程序&#…

高速公路智能管理系统:构建安全畅通的数字大动脉

随着城市化进程的加速和交通需求的增长&#xff0c;高速公路系统作为城市交通的重要组成部分&#xff0c;正承担着越来越多的交通运输任务。为了提升高速公路的安全性、便捷性和智能化管理水平&#xff0c;高速公路智能管理系统应运而生。本文将深入探讨高速公路智能管理系统的…

ExoPlayer 学习笔记

https://www.51cto.com/article/777840.html ExoPlayer支持多种媒体格式和流媒体协议的播放器 播放视频&#xff1a;player.play()暂停视频&#xff1a;player.pause()停止播放&#xff1a;player.stop() Media3 ExoPlayer | Android media | Android Developers implem…