springboot整合mybatis-plus
-
1、什么是MyBatis-Plus?
-
2、springboot整合MyBatis-Plus并使用分页插件
-
- 2.1、导入依赖
-
2.2、在springboot配置文件application.yaml中做数据库配置
-
2.3、配置分页插件
-
2.4、在 Spring Boot 启动类中添加 @MapperScan 注解,用于扫描 Mapper 文件夹
-
2.5、编码测试功能
-
- 2.5.1、数据库中建表:
-
2.5.2、实体类:
-
2.5.3、持久层:
-
2.5.4、业务层:
-
2.5.5、控制层代码
-
2.5.6、前端页面取出数据
-
2.5.7、对数据进行分页处理
-
2.5.8、数据删除操作
-
3、自动配置
-
4、mybatis-plus优点
=================================================================================
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
建议安装 MybatisX 插件
2、springboot整合MyBatis-Plus并使用分页插件
================================================================================================
com.baomidou
mybatis-plus-boot-starter
3.4.1
2.2、在springboot配置文件application.yaml中做数据库配置
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/db_account
username: root
password: root

@Configuration
public class MyBatisConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
return interceptor;
}
}
2.4、在 Spring Boot 启动类中添加 @MapperScan 注解,用于扫描 Mapper 文件夹

2.5.1、数据库中建表:

DROP TABLE IF EXISTS user;
CREATE TABLE user
(
id BIGINT(20) NOT NULL COMMENT ‘主键ID’,
name VARCHAR(30) NULL DEFAULT NULL COMMENT ‘姓名’,
age INT(11) NULL DEFAULT NULL COMMENT ‘年龄’,
email VARCHAR(50) NULL DEFAULT NULL COMMENT ‘邮箱’,
PRIMARY KEY (id)
);
DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, ‘Jone’, 18, ‘test1@baomidou.com’),
(2, ‘Jack’, 20, ‘test2@baomidou.com’),
(3, ‘Tom’, 28, ‘test3@baomidou.com’),
(4, ‘Sandy’, 21, ‘test4@baomidou.com’),
(5, ‘Billie’, 24, ‘test5@baomidou.com’);
2.5.2、实体类:
注解
@TableName:用来将指定的数据库表和 JavaBean 进行映射
@TableField:表示当前属性不是数据库的字段,但在项目中必须使用


2.5.3、持久层:
新建userMapper接口,再使该接口继承**BaseMapper<>**接口,无需再编写mapper.xml文件,即可完成CRUD操作。
因为在BaseMapper<>接口中定义了多个的方法。

2.5.4、业务层:
编写IUserService接口,该接口机继承IService接口,就无需在IUservice接口中编写业务逻辑代码。
新建IUserService接口的实现类,该类实现IUserService接口。并且实现ServiceImpl类,这样就不用在UseSerrviceImpl类中编写业务代码了。

2.5.5、控制层代码

调用userService的page()方法,可以查询出分页数据。

2.5.6、前端页面取出数据

2.5.7、对数据进行分页处理

thymeleaf实现给显示的每个页码带上超链接,点击该页码可以跳到对应页:

当前第 [[ p a g e . c u r r e n t ] ] 页总计 [ [ {page.current}]] 页 总计 [[ page.current]]页总计[[{page.pages}]] 页 共[[${page.total}]]条记录
- ← Prev
[[${num}]]
- Next →
2.5.8、数据删除操作
contoroller接口中编写删除方法

@Autowired
IUserService userService;
@GetMapping(“/user/delete/{id}”)
public String deleteUser(@PathVariable(“id”) long id,
@RequestParam(value = “pn”,defaultValue = “1”) Integer pn,
RedirectAttributes ra){
//调用userService的方法实现删除
userService.removeById(id);
//页面重定向时将带上请求参数pn。以实现删除该页的数据后依然留在该页
ra.addAttribute(“pn”,pn);
return “redirect:/dynamic_table”;
}
前端页面:

如何在请求路径中带上要删除记录数据的id,可以参考thymeleaf官方文档

=====================================================================
-
MybatisPlusAutoConfiguration 配置类,MybatisPlusProperties 配置项绑定。mybatis-plus:xxx 就是对mybatis-plus的定制
-
SqlSessionFactory 自动配置好。底层是容器中默认的数据源
-
mapperLocations 自动配置好的。有默认值。classpath*:/mapper/**/*.xml;任意包的类路径下的所有mapper文件夹下任意路径下的所有xml都是sql映射文件。 建议以后sql映射文件,放在 mapper下
-
容器中也自动配置好了 SqlSessionTemplate
-
@Mapper 标注的接口也会被自动扫描;建议直接 @MapperScan(“com.atguigu.admin.mapper”) 批量扫描就行
===============================================================================
- 新建mapper文件,只需要我们的Mapper继承 BaseMapper 就可以拥有crud能力


最后
小编这些年深知大多数初中级工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Java全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。



由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你需要这些资料,⬅专栏获取
0,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2MTEyMjc0,size_16,color_FFFFFF,t_70)最后
小编这些年深知大多数初中级工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Java全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-oew4kAqL-1719599186163)]
[外链图片转存中…(img-ArnJFp0t-1719599186164)]
[外链图片转存中…(img-JffaDyF6-1719599186165)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你需要这些资料,⬅专栏获取
-
3万+

被折叠的 条评论
为什么被折叠?



