MyBatis中的别名机制

news2024/11/20 4:55:49

在我们使用MyBatis中的select语句时,需要指定resultType的值,即查询对象的类型,该值是对象的完整类名,看起来非常的繁琐,因此MyBatis中有了别名机制

使用步骤

在mybatis-config.xml文件中添加< typeAliases >标签

但其位置不能随便加,可以添加到< properties >标签后面,在该标签内部添加< typeAlias>标签来为指定类起别名,例如

<!--别名自己指定的-->
        <typeAlias type="com.powernode.mybatis.pojo.Car" alias="aaa"/>

这种就是自己给指定的类起别名,该处别名为aaa

但我们也可以不用自己起别名,而是采用默认的别名,这里默认的是实体类的类名,不区分大小写

<!--采用默认的别名机制-->
			 <typeAlias type="com.powernode.mybatis.pojo.Car"/>

没有指定别名,这时该类的别名就是CAR或car或CaR

实战演示

<typeAliases>
        <typeAlias type="com.hkd.mybatis.bean.Car"></typeAlias>
    </typeAliases>

可以看出我没有指定别名

 <select id="selectByBrandLike" resultType="CaR">
        select
            id,
            car_num as carNum,
            brand as Brand,
            guide_price as guidePrice,
            produce_time as produceTime,
            car_type as carType
        from t_car
        where brand
        <!--'%${brand}%'-->
        <!--concat('%',#{brand},'%')-->
        like "%"#{brand}"%"
    </select>

执行测试代码(模糊查询)

 @Test
    public void testSelectByBrand(){
        SqlSession sqlSession = SqlSessionUtil.openSession();
        CarMapper mapper = sqlSession.getMapper(CarMapper.class);
        List<Car> cars = mapper.selectByBrandLike("比亚迪");
        cars.forEach(car -> System.out.println(car));
        sqlSession.close();
    }

执行结果
在这里插入图片描述
可以看出可以正常执行

但如果有好多实体类,我们需要一一写出来,那也是很麻烦的,不过MyBatis已经替我们解决了这个问题,也就是第三种起别名的方法,也是我们以后最常用的

<!--包下所有的类自动起别名。使用简名作为别名。-->
        <package name="com.hkd.mybatis.pojo"/>

什么意思呢?就是我们只需要指定实体类的包名,该包名下的所有实体类就会起一个别名,别名和第二中的一样,是默认的别名。

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

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

相关文章

Vue--》探索Pinia:Vue状态管理的未来

目录 Pinia的讲解与使用 Pinia的安装与使用 store数据操作 解构store数据 actions-getters的使用 Pinia常用API 持久化插件 Pinia的讲解与使用 Pinia 是由 Eduardo San Martin Morote 创建的&#xff0c;这是一个轻量级的、使用 Vue3 Composition API 的状态管理库。Pi…

谷粒商城二十五springCloud之Sleuth+Zipkin 服务链路追踪

为什么用 分布式系统庞大而复杂&#xff0c;服务众多&#xff0c;调用关系网也非常复杂&#xff0c; 服务上线以后如果出现了某些错误&#xff0c;错误的异常就很难定位。一个请求可能调用了非常多的链路&#xff0c;我们需要知道到底哪一块儿出现了错误。 最终希望有一个链…

Java基础学习(16)多线程

Java基础学习多线程 一、多线程1.1 什么是多线程1.2 多线程的两个概念1.2.1 并发 1.3 多线程的实现方式1.4 多线程的成员方法1.5 线程的生命周期 二、线程安全1.6 同步方法1.7 锁lock1.8 死锁1.8 生产者和消费者 (等待唤醒机制)1.9 等待唤醒机制(阻塞队列方式实现&#xff09;1…

IntelliJ IDEA汉化

IntelliJ IDEA汉化 描述解决办法 描述 在开发过程中&#xff0c;我们想让界面现实为汉语&#xff0c;那么我们就需要对IDEA工具进行汉化&#xff0c;目前版本的IDEA汉化都非常简单&#xff0c;请看下述实现步骤。 解决办法 下述汉化方法&#xff0c;全家桶软件都通用。 打开…

attention机制

油管attention机制解释 油管的attention机制视频。 基础形态 如下图所示&#xff0c;假设现在有4个向量&#xff0c; v 1 v_1 v1​到 v 4 v_4 v4​。我们以 v 3 v_3 v3​为视角&#xff0c;看它是怎么得到 y 3 y_3 y3​的。首先用 v 3 v_3 v3​和全部4个向量做点乘&#xff…

不依赖硬件,可以无限扩展的闹钟组件

在实际的开发项目中&#xff0c;很多时候我们需要定时的做一些事情&#xff0c;举例&#xff1a; ①路上的路灯&#xff0c;每天晚上6:00准时打开&#xff0c;每天早上6:00准时关闭&#xff1b;②定时闹钟&#xff0c;起床上班。这些行为其实都是定时任务–闹钟。 大部分单片机…

【MySql】数据库设计过程

目录 概念数据库设计&#xff1a; 逻辑数据库设计&#xff1a; 物理数据库设计&#xff1a; ->需求分析&#xff08;收集需求和理解需求,“源”&#xff09; ->概念数据库设计&#xff08;建立概念模型:"E-R图/IDEF1X"&#xff09; ->逻辑数据库设计&…

idle_in_transaction_session_timeout idle_session_timeout

这两个参数都是用来控制PostgreSQL数据库中会话的超时时间的。 idle_in_transaction_session_timeout idle_in_transaction_session_timeout参数用于控制在事务中处于空闲状态的会话的超时时间。如果一个会话在事务中处于空闲状态超过了指定的时间&#xff0c;则该会话将被终…

Rocky Linux 9.2 正式版发布 - RHEL 下游免费发行版

Rocky Linux 由 CentOS 项目的创始人 Gregory Kurtzer 领导。 请访问原文链接&#xff1a;https://sysin.org/blog/rocky-linux-9/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 以社区方式驱动的企业 Linux Rocky Linux 是…

Android Studio 基础 之 使用 okhttp 长连接,流式获取数据的方法简单整理了

Android Studio 基础 之 使用 okhttp 长连接&#xff0c;流式获取数据的方法简单整理了 目录 Android Studio 基础 之 使用 okhttp 长连接&#xff0c;流式获取数据的方法简单整理了 一、简单介绍 二、实现原理 三、注意事项 四、效果预览 五、实现关键 六、关键代码 七…

2023年服务器数据保护的详细指南

​  无论您经营的是小型个人博客还是日常流量很高的大型企业电子商务网站&#xff0c;安全性都是每个人都关心的问题。虽然粗略的第三方有时间和资源来利用他们在您的系统中发现的任何弱点&#xff0c;但您也可以采取其他措施来提高服务器的安全性并阻止它们。以下是您可以采…

论文笔记:tri-plane 【持续更新】

文章目录 概述Tri-Plane 表达验证 tri-plane 表达 3D GAN 框架CNN生成器backbone以及渲染超分Dual discriminationModeling pose-correlated attributes 实验数据 参考文献 概述 论文名称&#xff1a; Efficient Geometry-aware 3D Generative Adversarial Networks Project pa…

Class 04 - 日期时间格式

Class 04 - 日期时间格式 R语言中的日期和时间格式tidyverse 和 lubridate 功能包简介tidyverse 简介lubridate 简介 加载 tidyverse 和 lubridate 功能包处理日期和时间日期时间的格式获取当前的日期 today()获取当前的时间 now() 字符串格式转换为日期格式ymd()mdy()dmy()字符…

AlmaLinux 9.2 正式版发布 - RHEL 兼容免费发行版

AlmaLinux 9.2 正式版发布 - RHEL 兼容免费发行版 由社区提供的免费 Linux 操作系统&#xff0c;RHEL 兼容发行版。 请访问原文链接&#xff1a;https://sysin.org/blog/almalinux-9/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sys…

一个胖乎乎的3D卡片(有点像捏扁的圆柱体)

先上效果图&#xff08;图片是随机的&#xff0c;可能你们看到的和这个不一样。但效果是相同的&#xff09;&#xff1a; 再上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Titl…

飞浆AI studio人工智能课程学习(1)-大模型时代优质Prompt

文章目录 大模型时代&优质PromptAl生成技术价值概览开始构建你的优质prompt 近十年深度学习模型主要更迭为什么大模型能够有如此强大的表现力大模型与Prompt例1&#xff1a; 画一幅画&#xff0c;呆萌的小猫躺在大泡泡中例2&#xff1a;请生成一张统计图&#xff0c;内容为…

apk自动签名工具

序言 因为360加固&#xff0c;自动签名需要开通VIP&#xff0c;每次加固完了都得手动签名。所以写了个工具。实现通过配置文件配置&#xff0c;拖拽APK自动签名。 支持&#xff1a;V1 V2 V3 V4 签名。通过分析清单文件&#xff0c;自动选择版本。 效果 使用 1.下载jar包 au…

实验室检验系统源码,集检验业务、质量控制、报告、统计分析、两癌等模块于一体

云 LIS 系统针对区域化 LIS 而设计&#xff0c;依托底层云架构&#xff0c;将传统的 LIS 功能模块进行“云化”。 该系统是集检验业务、科室管理、质量控制、报告、统计分析、两癌等模块于一体的数据检验信息平台。通过计算机联网&#xff0c;实现各类仪器数据结果的实时自动接…

新库上线 | CnOpenData舆情云数据

舆情云数据 一、数据简介 网络舆情监测数据是决策者进行数据分析和决策处置的基础。舆情云数据覆盖81000 网站、5600 论坛、1000 平面媒体、2500万 微信账号、3亿 微博账号、300 网络视频、17000 境外媒体、1400万 自媒体账号、2500 新闻客户端、170 电视台 &#xff0c;数据来…

图神经网络:(大型图的有关处理)在Pumbed数据集上动手实现图神经网络

文章说明&#xff1a; 1)参考资料&#xff1a;PYG官方文档。超链。 2)博主水平不高&#xff0c;如有错误还望批评指正。 3)我在百度网盘上传了这篇文章的jupyter notebook和有关文献。超链。提取码8848。 文章目录 Pumed数据集文献阅读继续实验 Pumed数据集 导库 from torch_…