(十四)JavaWeb后端开发——MyBatis

news/2024/11/7 18:45:25/

目录

1.MyBatis概述

2.MyBatis简单入门

3.JDBC(了解即可)

4.数据库连接池​

5.lombok 

6.MyBatis基本操作

7.XML映射文件

8.动态SQL

8.1 if标签

8.2 foreach标签

8.3 sql/include标签​


1.MyBatis概述

MyBatis是一款优秀的持久层(DAO)框架,用于简化JDBC的开发,和数据库打交道。它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作

比如说如果想要查询所有用户的数据,普通SQL语句是select * from users;而MyBatis就是通过java语句操作数据库查询

2.MyBatis简单入门

Day08-14. Mybatis-入门-快速入门程序_哔哩哔哩_bilibili

3.JDBC(了解即可)

JDBC:(Java DataBase Connectivity),就是使用Java语言操作关系型数据库的一套API,Java程序想要操作MySQL、Oracle等数据库就得通过JDBC这套API实现,但是各个数据库厂商的底层实现是不同的,所以JDBC仅仅只是提供了接口,由各个厂商去实现,封装在一起也就是驱动

JDBC的缺点:不方便,资源浪费,相比之下SpringBoot+MyBatis效率高很多,写在配置文件中

现在都是用MyBatis,不会去用原始的JDBC

4.数据库连接池

需要学习如何切换数据库连接池

5.lombok 

Lombok是一个实用的Java类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法,并可以自动化生成日志变量,简化java开发、提高效率。

使用场景:数据库配套的use类,明明只需要tostring方法但却需要生成一个完整的Javabean类,很麻烦,此时就可以使用lombok的注解优化

6.MyBatis基本操作

public interface EmpMapper {//根据主键删除数据@Delete("delete from emp where id = #{id}")public int delete(Integer id);//返回值是影响的记录数,也可以不需要返回值//新增员工@Insert("insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time)" + " values (#{username}, #{name}, " +"#{gender}, #{image}, #{job}, #{entrydate}, #{dept_id}, #{create_time}, #{update_time} )");public void insert(User emp);//更新员工//查询员工
}

7.XML映射文件

使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让你本就复杂的 SQL语句更加混乱不堪,因此,如果你需要做一些很复杂的操作,最好用 XML 来映射语句

8.动态SQL

随着用户的输入或外部条件的变化而变化的SQL语句,我们称为动态SQL,也就是学习各种动态SQL 标签,以下面的SQL语句为例,即使搜索栏只输入一个条件,也会根据三个条件进行查询,比较死板,所以就引出了动态SQL

8.1 if标签

<if></if>

<select id="list" resultType="com.mzz.pojo.Emp">select *from emp<where><if test = "name != null">name like concat('%', #{name},'%')</if><if test = "gender != null">and gender = #{gender}</if><if test = "begin != null and end != null">and entrydate between #{begin} and #{end}</if></where>order by update time desc</select>

8.2 foreach标签

<foreach></foreach>

批量删除员工信息

8.3 sql/include标签


http://www.ppmy.cn/news/1545136.html

相关文章

大模型的常用指令格式 --> ShareGPT 和 Alpaca (以 llama-factory 里的设置为例)

ShareGPT 格式 提出背景&#xff1a;ShareGPT 格式起初来自于用户在社交平台上分享与聊天模型的对话记录&#xff0c;这些记录涵盖了丰富的多轮对话内容。研究者们意识到&#xff0c;这类真实的对话数据可以帮助模型更好地学习多轮对话的上下文保持、回应生成等能力。因此&…

有源电力滤波器为什么能用在对电能质量要求高的场所?

有源电力滤波器&#xff08;APF&#xff09;主要应用于对电能质量要求较高的场所&#xff0c;并且常与产生谐波和无功功率的设备一起配合使用。 一、有源电力滤波器应用场所&#xff1a; 1、工厂生产线&#xff1a;在自动化生产线中&#xff0c;有大量的变频器用于电机调速。…

Go语言面向对象编程

文章目录 Go语言面向对象 一、结构体定义结构体定义结构体语法格式 二、实例化结构体结构体的使用结构体实例化语法new关键字 三、初始化结构体变量结构体初始化顺序初始化指定初始化 四、匿名结构体匿名结构体定义匿名结构体语法格式 五、结构体内嵌结构体内嵌语法、特性键值对…

使用 std::queue 来管理消息队列的单例模式实现多线程消息通知

直接上代码&#xff1a; // MessageQueue.h #ifndef MESSAGEQUEUE_H #define MESSAGEQUEUE_H#include <string> #include <optional> #include <mutex> #include <queue> #include <condition_variable>class MessageQueue { public:// 禁止拷贝…

【Ai测评】GPT Search偷偷上线,向Google和微软发起挑战!

最近&#xff0c;OpenAI 又推出了一个令人兴奋的新功能——GPT Search&#xff0c;已经正式上线了&#xff01; 功能介绍 GPT Search&#xff1a;为你带来全新搜索体验 目前&#xff0c;桌面端和移动端应用程序已经全面上线&#xff0c;所有 GPT Plus 和 Team 用户都可以立即…

网络安全从入门到精通(特别篇II):应急响应之DDOS处置流程

应急响应之DDOS事件处置流程 1. 现场访谈 访谈管理员,了解DDOS事件情况。 了解当前异常情况,异常出现的时间以及相应时间段内的流量情况,尤其是否有明显流量增大的情况;同时造成何种影响,当前最迫切的需求;了解当前的网络架构以及网络设备情况,同时了解业务系统架构,…

Node.js简介以及安装部署 (基础介绍 一)

Node.js简介 Node.js是运行在服务端的JavaScript。 Node.js是一个基于Chrome JavaScript运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境&#xff0c;基于Google的V8引擎&#xff0c;V8引擎执行Javascript的速度非常快&#xff0c;性能非常好。 Node.…

交换机和集线器的区别

交换机&#xff08;Switch&#xff09;和集线器&#xff08;Hub&#xff09;都是用于在局域网&#xff08;LAN&#xff09;中连接多台计算机的网络设备&#xff0c;但它们的工作原理和功能有很大的不同。 1. 工作原理 集线器&#xff08;Hub&#xff09;&#xff1a; 集线器是…