自学内容网 自学内容网

Java Web 12 MyBatis 入门 增删改查 动态SQL

本文是MyBatis的手把手式全面教程 作者凌晨三点整理而成 祝好! 

目录

前言

什么是MyBatis?

1、快速入门

①、案例介绍

②、实现过程

③、小结

④、扩展:配置SQL提示

2、JDBC介绍 

①、本质

②、JDBC操作数据库代码示例

③、原始JDBC存在的问题 

④、MyBatis是如何解决原始JDBC存在的问题的?

3、数据库连接池

①、有无数据库连接池的对比

②、数据库连接池的优势

③、怎么实现数据库连接池

④、小结 

4、lombok

①、介绍

1、环境准备

①、需求说明

②、准备工作

2、删除

①、根据主键删除

②、日志输出

③、预编译SQL

④、SQL注入

⑤、参数占位符(占位符不只#{},还有${})

⑥、小结 

3、新增(插入数据)

①、新增示例

②、主键返回

③、小结

4、更新

①、更新示例

②、小结 

5、查询

①、示例:根据ID查询

②、MyBatis的数据封装

③、条件查询

④、参数名说明

6、XML映射文件(通过XML文件实现MyBatis)

①、规范(三点)

②、XML映射文件插件(MyBatisX)

③、如何选择注解和XML?

④、小结

三、MyBatis动态SQL

1、标签

①、基础写法

②、案例:完善更新员工操作,改为动态SQL

③、小结 

2、标签

①、批量删除操作

②、小结

3、标签(这两个标签配套使用)

4、小结


前言

什么是MyBatis?

MyBatis 官网: MyBatis中文网icon-default.png?t=O83Ahttps://mybatis.net.cn/ 一、MyBatis 入门

1、快速入门

①、案例介绍

案例:使用 MyBatis 查询所有用户数据

在 Java 中编写 SQL 语句,发送给服务器

实现步骤: 

注意:在 MyBatis 的开发当中,我们只需要定义这个 Mapper 接口即可,是不需要定义它的实现类的,因为程序在运行时,框架底层会自动生成这个接口的实现类对象。

②、实现过程

Ⅰ、创建一个SpringBoot工程:

 

勾选 MyBatis 相关依赖: 

Ⅱ、删除多余文件,保持项目整洁:

Ⅲ、数据库表与实体类的创建:

数据库表的创建可以在数据库中直接执行SQL文件解决;

实体类的创建:

Ⅳ、配置数据库的连接信息 -- application.properties(四要素):

Ⅴ、创建 Mapper 接口:

Ⅵ、基础代码写好后,进行单元测试

效果展示:

③、小结

④、扩展:配置SQL提示

我们可以在Mapper接口中配置SQL提示:

 

 

2、JDBC介绍 

①、本质

②、JDBC操作数据库代码示例

③、原始JDBC存在的问题 

④、MyBatis是如何解决原始JDBC存在的问题的?

我们使用SpringBoot来整合MyBatis进行数据库操作的时候,主要关注两点:

⑤、小结 

3、数据库连接池

类似与线程池

①、有无数据库连接池的对比

如果没有数据库连接池:(随用随创建)

而有了数据库连接池:(在一开始就初始化了一定数量的连接对象),这样的话就可以做到连接的复用,而不是每一次都要新创建一个连接,同时数据库连接池还具有(空闲时间检测,当其监测到分配给客户端的连接对象空闲时间超过了指定时间,则将会把该连接释放,归还给连接池)

②、数据库连接池的优势

③、怎么实现数据库连接池

SpringBoot项目默认连接池:(HikariCP 来源于日语,意思为「光」,意味着它很快) 

而Druid是阿里巴巴开源的数据库连接池项目:

切换数据库连接池:(主要就是切换pom.xml中的依赖)GitHub上有详细介绍

④、小结 

4、lombok

简化实体类的方法:

①、介绍

但要想使用lombok,那么首先就要引入lombok的依赖:

二、MyBatis基础操作 

1、环境准备

①、需求说明

②、准备工作

具体可参考一中的快速入门案例

实体类中的注意点:

Mapper接口:(加上了@Mapper注解,就代表程序在运行时会自动的创建接口的代理对象,并且会将这个代理对象放入到 IOC 容器当中) 

2、删除

①、根据主键删除

②、日志输出

③、预编译SQL

采用预编译SQL具有两大优势:

④、SQL注入

示例:(直接拼接SQL的方式)

而在预编译SQL中,这种方法则无法奏效:(这是因为在预编译SQL中无论你输入了什么,你输入的参数都将作为一个完整的数据添到占位符?处)

⑤、参数占位符(占位符不只#{},还有${})

但${}会直接将参数拼接在SQL语句中,存在SQL注入风险,所以一般情况下都使用#{}方式即可

⑥、小结 

3、新增(插入数据)

①、新增示例

②、主键返回

③、小结

4、更新

①、更新示例

 

②、小结 

5、查询

①、示例:根据ID查询

②、MyBatis的数据封装

③、条件查询

④、参数名说明

6、XML映射文件(通过XML文件实现MyBatis)

①、规范(三点)

②、XML映射文件插件(MyBatisX)

③、如何选择注解和XML?

④、小结

三、MyBatis动态SQL

我们想实现的效果:这个查询是根据输入的条件动态组装的,如我们要查询姓名,则只根据姓名进行查询,而实现这种查询的方式就是动态SQL

1、<if>标签

①、基础写法

②、<if>案例:完善更新员工操作,改为动态SQL

③、小结 

 

2、<foreach>标签

①、批量删除操作

②、小结

3、<sql><include>标签(这两个标签配套使用)

如果XML中存在大量的重复语句时,就可以使用<sql><include>标签进行复用

4、小结


原文地址:https://blog.csdn.net/weixin_60566743/article/details/144388024

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!