springboot整合Mybatis增删改查实现

一.技术介绍

Spring Boot整合MyBatis,指的是在Spring Boot框架中,通过MyBatis作为持久层框架,与Spring Boot进行整合,提供数据库交互的功能。

具体来说,通过MyBatis的Mapper接口,可以定义与数据库表相对应的方法,这些方法可以通过MyBatis的映射文件进行映射,从而实现对数据库的操作。

二.准备工作

创建stu表,实现简单增删改查

1.创建springboot工程

勾选Mybatis,Mysql驱动 lombok(自动生成类方法)

application.propoties配置Mybatis四要素

2.创建实体类,数据库表

3.创建持久层接口

Mapper接口

@Mapper注解是MyBatis提供的一个注解,用于标记Mapper接口。 当Spring Boot启动时,会扫描到这些接口并自动创建对应的Mapper实例bean对象,用于与数据库进行交互。

4.测试类

@Autowired依赖注入,从ioc容器导入接口对象

三.具体实现

1.删除元素

删除id为20241的元素

 创建Mapper接口,定义方法,传参使用占位符#{}

对传参不了解的同学可以参考上一篇文章

http://t.csdnimg.cn/eCgbW

sql语句中的占位符#{}

在执行过程中#{}会替换为?生成预编译sql

在参数传递使用,作用

1.提高效率

会生成含有?的预编译sql,放入缓存下次使用时,编译前直接从缓存拿出,只需要给?传个参数

2.防止sql注入

${}拼接sql 会直接拼接到sql中,存在sql注入风险

2 插入元素

@insert

insert into 表名(字段名) values #{ }

传参时传入多个属性时,可以封装为一个对象

所以需要创建stu类

接口定义方法,@Select写入sql

测试

3.修改元素

接口定义方法,@update写入sql

测试

修改

4.查询元素单一结果

接口定义方法,方法返回结果封装一个对象

@select写入sql

测试

发现classId=null

原因:sql查询返回字段名与类的属性名不一致

类的属性是classId 返回字段名是class_id

字段名与类的属性名不一致解决方法:

1.方法一 (不常用) 起别名

将查询返回的字段修改为和类属性名一致

2.方法二(不常用) 添加@Results @result注解

把字段注解对应属性

3.方法三 (推荐)开启Mybatis驼峰命名自动封装

注意使用时,需要类名采用驼峰命名形式,字段名下划线形式

2.查询元素多个结果

接口

定义查询方法返回List形式

对查询参数不熟悉的同学可以看我上一篇文章

3.查询元素模糊匹配

这里使用到了like模糊匹配,#{}不能包含在字符串中,

#{}可以使用但存在sql注入风险,

需要使用自带的concat字符串拼接函数

相关推荐

  1. SpringBoot实现增删

    2024-04-28 18:56:01       39 阅读
  2. MyBaties-增删

    2024-04-28 18:56:01       59 阅读
  3. mybatis增删

    2024-04-28 18:56:01       19 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-28 18:56:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-28 18:56:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-28 18:56:01       82 阅读
  4. Python语言-面向对象

    2024-04-28 18:56:01       91 阅读

热门阅读

  1. 使用uniapp开发iOS应用有哪些优势和劣势

    2024-04-28 18:56:01       28 阅读
  2. 2024年水利水电安全员题库及答案

    2024-04-28 18:56:01       33 阅读
  3. Windows 11 轻量简单的美化方案

    2024-04-28 18:56:01       35 阅读
  4. C++的原子变量作用

    2024-04-28 18:56:01       33 阅读
  5. Docker-04 Docker镜像命令

    2024-04-28 18:56:01       30 阅读
  6. 微信小程序:7.页面渲染

    2024-04-28 18:56:01       32 阅读
  7. 缺陷管理(规范要求)

    2024-04-28 18:56:01       30 阅读
  8. 上海计算机学会2020年5月月赛C++丙组T4增长与翻倍

    2024-04-28 18:56:01       29 阅读