JavaWeb开发03-Mybatis入门-基础操作-XML映射文件-动态SQL

一、Mybatis-入门

Java程序控制数据库

1.入门

定义实体类:一定要和表中的字段一一对应

配置连接数据库数据

建立Mapper层语句,来获取数据库数据以及将其封装到user的list中去。

2.配置SQL提示

为了进行查询数据库中有哪些表,所以得连接数据库

3.JDBC介绍

4.数据库连接池

所有数据库连接池都要实现DataSource这个接口

如果要在spring框架下使用德鲁伊连接池只需要引入德鲁伊的起步依赖

5.lombok

原先实体类需要构造器以及需要get,set,重写toString

lombok只需要注解

红色的注解用的最多

首先引入lombok依赖:

然后在实体类上进行注解就行

二、Mybatis基础操作

1.删除

在mapper接口中要创建一个抽象方法并使用delete注解,括号里是删除的操作,传入的主键id

使用这个接口

建议保持一致

Mybatis底层MYSQL语句是怎么样的执行什么操作是看不到的,所以需要日志

不需要记,只要记住什么需要日志,mybtis加上log就会出现其配置项。

之前删除的底层:

预编译SQL

预编译的占位符导致每次输出语句一样只需要编译一次

SQL注入

而预编译会将你的输入密码整个传给password避免了SQL注入

使用#()就是使用了预编译

2.新增

Mapper中的函数

测试新增函数

主键返回

如何实现主键返回

3.更新

根据主键修改信息

更新操作的SQL语句

Mapper更新方法:

Java中的测试程序

4.查询

解决方案:

方式一:给字段起别名

方式二:通过Resulte注解

方式三:开启mybatis的驼峰命名自动映射开关

在properties中开启:

输入camel

条件查询

Mapper方法:

注意:#()不能在引号里,为了进行模糊匹配使用$拼接符,但是存在SQL注入问题,所以采用SQL的concat语句:

测试函数:

对于之前版本的SpringBoot版本使用Param注解来对应,现在内置了编译插件

三、XML映射文件

配置SQL语句可以通过注解也可以通过XML映射文件

配置XML文件语句

第一条红色区域的java包下的mapper和resource包下的xml

第二条紫色区域

第三条黄色区域

创建resource包下的xml文件目录格式:

使用新建Directory,使用斜线分割

在test或者application中使用前得配置XML文件:

固定约束是:

使用XML映射文件条件查询:

Mapper方法函数:

test中进行xml文件映射

按规范是为了让SQL语句匹配上,注解就直接匹配了

四、动态SQL

1.动态标签

<if>

使用XML映射文件

这样只传入name也会根据name进行查询,或者两个三个一个进行查询。

但是这样如果不传入name,传了gender和entrydate,前有and,SQL语法不正确

所以需要使用<where>标签,会判断里面的条件

案例

对于部门人员信息的更新,有些信息不需要更新,但之前的不使用动态标签的就必须每个参数都要传入

但是如果不传username,会多余一个,出现错误所以使用set动态标签

<foreach>

批量删除信息

mapper方法函数 :

<foreach>中的参数:

XML映射文件

测试程序:

<sql><include>

在XML映射文件中存在许多通用的语句重复使用,所以使用这组动态标签进行代码的复用

相关推荐
不羁。。5 小时前
【撸靶笔记】第七关:GET - Dump into outfile - String
数据库·笔记·oracle
yangchanghua1116 小时前
pgsql 如何查询今天范围内的数据(当天0点0分0秒 - 当天23点59分59秒....)
数据库·pgsql
larance7 小时前
SQLAlchemy 的异步操作来批量保存对象列表
数据库·python
python_chai7 小时前
从数据汇总到高级分析,SQL 查询进阶实战(下篇)—— 分组、子查询与窗口函数全攻略
数据库·sql·mysql
在努力的前端小白7 小时前
Spring Boot 敏感词过滤组件实现:基于DFA算法的高效敏感词检测与替换
java·数据库·spring boot·文本处理·敏感词过滤·dfa算法·组件开发
未来之窗软件服务7 小时前
自建知识库,向量数据库 (九)之 量化前奏分词服务——仙盟创梦IDE
数据库·仙盟创梦ide·东方仙盟·自建ai·ai分词
冒泡的肥皂10 小时前
MVCC初学demo(一
数据库·后端·mysql
.Shu.11 小时前
Redis Reactor 模型详解【基本架构、事件循环机制、结合源码详细追踪读写请求从客户端连接到命令执行的完整流程】
数据库·redis·架构
薛晓刚14 小时前
当MySQL的int不够用了
数据库
SelectDB技术团队14 小时前
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
数据库·数据仓库·数据分析·apache doris·菜鸟技术