java学习day17MyBatis

news2024/9/21 3:27:31

Mybatis

数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中数据模型的统称。例如,文件的存储、数据的读取以及对数据表的增删改查等都是数据持久化操作

MyBatis支持定制化SQL、存储过程以及高级映射,可以在实体类和SQL语句之间建立映射关系,是一种半自动化的ORM实现。其封装低于Hibernate,但性能优秀、小巧、简单易学、应用广泛。

ORM(Object Relational Mapping)对象关系映射

是一种数据持久化技术,它在对象模型和关系型数据库之间建立起对应关系、并且提供了一种机制,通过JavaBean对象去操作数据库表中的数据

MyBatis前身为iBatis,2002年由ClintonBegin发布。2010年从Apache迁移到Google,并改名为MyBatis,2013年又迁徙到了Github。

MyBatis的主要思想是将程序中的大量SQL语句剥离出来,使用XML文件或注解的方式实现SQL的灵活配置,将SQL语句与程序代码分离,在不修改程序代码的情况下,直接在配置文件中修改SQL语句。

MyBatis与其他持久性框架最大的不同是,MyBatis强调使用SQL,而其他框架(例如Hibernate)通常使用自定义查询语言,即HQL(Hibernate查询语言)或EJB QL(Enterprise JavaBeans查询语言)

搭建Mybatis

添加依赖

配置数据源

配置Mapper文件路径和别名以及日志级别

定义Mapper,namespace中填写对应Dao包的路径

创建对应封装类

定义数据访问层接口,使用Mapper接口

Controller层

增删改查

SQL语句执行分为两个过程

1.编译

2.执行指令

${}和#{}的区别:

        #{}会进行预编译,将SQL语句的语义确定,之后无论传递任何参数都不会改变SQL语句语义,可以有效防止SQL注入,也可加快批处理的效率

---------------------------------------------------------------------------------------------------------------------------------

增<insert id="">

insert into 表名(列名…) value(值…)

dao接口

Controller层

---------------------------------------------------------------------------------------------------------------------------------

删<delete id="">

delete from 表明 where 条件

dao接口

Controller层

---------------------------------------------------------------------------------------------------------------------------------

改<update id="">

update 表名 set 列名=属性… where 条件

dao接口

Controller层

---------------------------------------------------------------------------------------------------------------------------------

查<select id="" resultType="">

select 列名… from 表名 where 条件

dao接口

Controller层

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

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

相关文章

【socket编程】预备知识 {IP地址和MAC地址;端口号;认识TCP/UDP协议;网络字节序;socket编程入门}

一、IP地址和MAC地址 源IP地址和目的IP地址 IP地址用于唯一标识网络中的一台主机在IP数据包头部中&#xff08;网络层&#xff09;, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址这两个地址在网络传输过程中是不变的&#xff0c;因为它们是数据包的一部分&#xff0c;并且用…

Serverless 1

一、云原生应用 云原生应用覆盖到&#xff1a; 大数据&#xff0c;人工智能&#xff0c;边缘计算&#xff0c;区块链等 服务代理&#xff1a;envoy API 网关&#xff1a;APISIX 服务网格&#xff1a;Istio 服务发现&#xff1a;CoreDNS 消息和流式处理&#xff1a;kafka Serve…

打造高效校园办公:智慧校园行政办公合同类型

智慧校园行政办公中的合同类型功能是为了满足校园内各种合同管理需求而设计的一套数字化管理系统。该功能旨在提高合同管理效率&#xff0c;简化合同处理流程&#xff0c;确保合同内容的准确性和合规性。 智慧校园行政办公中的合同类型功能支持多种类型的合同管理&#xff0c;包…

【书生大模型实战营第三期 | 基础岛第1关-书生大模型全链路开源体系】

学习心得&#xff1a;《书生浦语大模型全链路开源开放体系》 摘要 通过观看哔哩哔哩上的《书生浦语大模型全链路开源开放体系》视频&#xff0c;我对开源大模型及其工具链有了更深入的了解。视频由社区贡献者汪周谦讲解&#xff0c;不仅介绍了书生浦语大模型的架构和功能&…

Excel公式与函数(运算符,计算限制,错误检查)(一)

公式 公式概念 公式 是以“”号为引导&#xff0c;用过运算符按照一定的顺序组合进行数据运算处理的等式&#xff0c;函数 则是按特定算法执行计算的产生一个或一组结果的预定义的特殊公式。 公式组成要素 公式的组成要素为“”&#xff0c;运算符&#xff0c;单元格引用&a…

基于STM32F407+NBIOT+华为云IOT平台设计的环境检测系统

基于STM32F407NBIOT华为云IOT平台设计的环境检测系统实现的功能&#xff1a; 【1】能够采集本地环境的温度、湿度、烟雾浓度&#xff0c;火光信息&#xff0c;在OLED显示屏上显示。 如果检测到烟雾、温度、火光超过阀值会触发蜂鸣器报警。 【2】能够通过NBIOT将本地设备采集的信…

LE-50821F/FA激光扫描传感器|360°避障雷达之性能参数与配置清单说明

LE系列激光扫描传感器|360避障雷达涵盖LE-50711、LE-50711F、​ LE-50621、LE-50821F、​LE-50621F、LE-50821FA、LE-50711FA、LE-50621FA等型号&#xff0c;广泛应用于自动化工厂、物流与仓储、汽车制造与物流、机械设备、能源与环境等领域的环境感知、高精度定位&#xff08;…

【dockerpython】亲测有效!适合新手!docker创建conda镜像+容器使用(挂载、端口映射、gpu使用)+云镜像仓库教程

文章目录 docker基本概念简介配置镜像加速源创建conda镜像1. 写 Dockerfile文件2. 创建镜像3. 创建容器并测试 容器的使用1. wsl挂载2. 端口映射3. 补充-gpu 云镜像仓库使用1. 登录2. 将本地镜像上传至云镜像仓库3. 从云镜像仓库下载镜像到本地 docker基本概念简介 简单来讲&a…

2024年“华数杯”数学竞赛A题完整解析 | 代码分享

机器臂关节角路径的优化设计 问题一 代码 Matlab clc clear % 参数定义 a [0, 300, 1200, 300, 0, 0]; alpha [0, -90, 0, -90, -90, -90]; d [600, 0, 0, 1200, 0, 0]; theta_min [-160, -150, -200, -180, -120, -180]; theta_max [160, 15, 80, 180, 120, 180]; P_t…

计算机网络(网络层)

网络层概述 网络层是干什么的&#xff1f; 网络层的主要任务是实现不同异构网络互连&#xff0c;进而实现数据包在各网络之间的传输相比于数据链路层的以太网通信&#xff0c;网络层则是将一个个数据链路层连接的以太网通过路由器连接起来。从而实现不同数据链路层的互联。 这…

【Linux】网络基础_3

文章目录 十、网络基础5. socket编程socket 常见APIsockaddr结构简单的UDP网络程序 未完待续 十、网络基础 5. socket编程 socket 常见API // 创建 socket 文件描述符 (TCP/UDP, 客户端 服务器) int socket(int domain, int type, int protocol);// 绑定端口号 (TCP/UDP, 服…

Ubuntu窗口如何自适应VM虚拟机

修改VM的显示设置 1&#xff1a;右击ubuntu计算机&#xff0c;点击设置按钮&#xff0c;进入到设置界面。 2&#xff1a;点击拉伸模式&#xff0c;选择自由拉伸。 以上操作结束之后打开ubuntu虚拟机。 ubuntu屏幕显示设置 进入到ubuntu系统之后&#xff0c;在桌面右击&…

网关与auth微服务缓存打通

文章目录 &#x1f31e; Sun Frame&#xff1a;SpringBoot 的轻量级开发框架&#xff08;个人开源项目推荐&#xff09;&#x1f31f; 亮点功能&#x1f4e6; spring cloud模块概览常用工具 &#x1f517; 更多信息1.缓存一致性问题1、更新了数据库&#xff0c;再更新缓存2、更…

大数据-68 Kafka 高级特性 物理存储 日志存储概述

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

文献翻译软件哪个好?6个工具让你轻松看懂外语文献

在医学研究领域&#xff0c;文献翻译软件扮演着至关重要的角色。 医学论文、研究报告和临床指南等&#xff0c;往往包含了大量的专业术语和复杂的句子结构&#xff0c;对于非母语者来说&#xff0c;理解这些内容无疑是一项挑战。 幸运的是&#xff0c;随着技术的发展&#xf…

巴黎奥运会8K转播科技为国产品牌自主研发设计

这个夏天&#xff0c;顶流是属于巴黎奥运会中国队的。 20枚金牌、15枚银牌、12枚铜牌......这个数字正随着赛事推进而不停在增加。赛场之上&#xff0c;中国健儿奋力拼搏、捷报频传&#xff0c;令人热血沸腾&#xff1b;赛场之外&#xff0c;另一支来自中国企业的“奥运选手”…

Linux OS:基于阻塞队列的生产者消费者模型

Linux OS&#xff1a;基于阻塞队列的生产者消费者模型 前言一、阻塞队列的大致框架二、生产者向阻塞队列中生产数据三、消费者获取阻塞队列中数据四、总体生产和消费思路及测试代码4.1 单生产单消费4.2 多生产多消费 五、所以代码 前言 阻塞队列是一种常用于实现生产者消费者模…

大模型微调技术PEFT

1. 横向对比 总体概览&#xff1a; 方法Transformer 中如何应用特点Prompt Tuning在输入到Transformer的input文本中添加Prompthard 模式prompt CO-STARP-tuning在输入到Transformer的embedding 层添加Promptsoft 模式 promptAdapter Tuning在 Transformer 中间层插入 Adapt…

MATLAB代码|蚁群算法|计算二元函数最大值

总述 蚁群方法求解二元函数的最大值。蚂蚁群先随机分布在定义域内&#xff0c;如下&#xff1a; 计算结束后&#xff0c;得到如下的分布&#xff0c;再计算分布均值&#xff0c;得到此时的自变量取值&#xff0c;因为是二元函数&#xff0c;所以有两个自变量&#xff0c;带入…

Qt 实战(9)窗体 | 9.1、QWidget

文章目录 一、QWidget1、定义与概念2、继承体系3、常用特性3.1、事件处理3.2、布局管理3.3、子控件与父子关系3.4、右键菜单 4、注意事项5、总结 前言&#xff1a; 在Qt这一强大的跨平台C图形用户界面应用程序开发框架中&#xff0c;QWidget扮演着至关重要的角色。作为所有用户…