SpringBoot和Mybatis-Plus
1 正文
1. springboot自动装配原理---
2. springboot整合mbatis-plus
3. springboot整合swagger2
4. springboot整合定时器
2 springboot自动装配原理
2.1 springboot包扫描原理
包建议大家放在主类所在包或者子包。默认包扫描的是主类所在的包以及子包。
主函数 @SpringBootApplication 该注解是一个复合注解,包含@EnableAutoConfiguration,这个注解开启了自动配置功能, 该注解也是一个复合注解,包含AutoConfigurationImportSelector该注解中包含@Import({Registrar.class}),这个注解引入Registrar类,该类中存在registerBeanDefinitions,可以获取扫描的包名。
如果需要人为修改扫描包的名称则需要在主类上@ComponentScan(basepackage={"包名"})
2.2 springboot自动装配原理
主函数在运行会执行一个使用@SpringbootApplication注解的类,该注解是一个复合注解,包含@EnableAutoConfiguration, 该注解开启自动配置功能,该注解也是一个复合注解,包含@Import() 该注解需要导入AutoConfigurationImportSelector类。 该类会加载很多自动装配类,而这些自动装配类完成相应的自动装配原理。
3 springboot 整合 mybatis-plus
3.1 mybatis-plus概述
MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。
不能替代mybatis ,以后对于单表操作的所有功能,都可以使用mp完成。但是链表操作的功能还得要校验mybatis.
3.2 如何使用mp
(1) 创建表并加入数据
DELETE FROM user;INSERT INTO user (id, name, age, sex) VALUES
(1, '石', 23, '男'),
(2, '乔', 24, '男'),
(3, '王', 21, '男'),
(4, '平', 22, '男');
(2)创建一个springboot工程并引入相关的依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.12.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.syp</groupId><artifactId>springboot_mybatis-plus</artifactId><version>0.0.1-SNAPSHOT</version><name>springboot_mybatis-plus</name><description>springboot_mybatis-plus</description><properties><java.version>1.8</java.version></properties><dependencies><!--swagger2依赖--><dependency><groupId>com.spring4all</groupId><artifactId>swagger-spring-boot-starter</artifactId><version>1.9.1.RELEASE</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.7.8</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build></project>
(3) 配置数据源
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql:///db1
spring.datasource.username=root
spring.datasource.password=shi001104
(4) 创建实体类
@Data
@ToString
@NoArgsConstructor
public class User {@TableId(type = IdType.AUTO) // 自动增长private Integer id;private String name;private Integer age;private String sex;public User(String name, Integer age, String sex) {this.name = name;this.age = age;this.sex = sex;}
}
(5) 创建一个dao接口
public interface UserMapper extends BaseMapper<User> {
}
(6) 为接口生成代理实现类
@SpringBootApplication
@MapperScan(basePackages = "com.syp.mapper")
public class SpringbootMybatisPlusApplication {public static void main(String[] args) {SpringApplication.run(SpringbootMybatisPlusApplication.class, args);}}
(7) 测试
@SpringBootTest
class SpringbootMybatisPlusApplicationTests {@Autowiredprivate UserMapper userMapper;// Id查询@Testvoid select() {User user = userMapper.selectById(1);System.out.println(user);}
}
3.3 使用mp完成CRUD
@SpringBootTest
class SpringbootMybatisPlusApplicationTests {@Autowiredprivate UserMapper userMapper;// Id查询@Testvoid select() {User user = userMapper.selectById(1);System.out.println(user);}// 增加@Testvoid insect(){User user = new User("李",22,"男");System.out.println(userMapper.insert(user));}// 删除@Testvoid delete(){// 删除一个System.out.println(userMapper.deleteById(4));// 批量删除List<Integer> integers = new ArrayList<>();integers.add(5);integers.add(6);System.out.println(userMapper.deleteBatchIds(integers));}// 修改@Testvoid update(){User user = new User("平",22,"男");user.setId(4);System.out.println(userMapper.updateById(user));}// 查询所有@Testvoid select2(){System.out.println(userMapper.selectList(null)); // null 代表查询所有}}
3.4 使用mp完成条件查询
@SpringBootTest
class SpringbootMybatisPlusApplicationTests {@Autowiredprivate UserMapper userMapper;// 各种查询条件@Testvoid select3(){QueryWrapper wrapper = new QueryWrapper();// wrapper.ge("age",23);wrapper.like("name","石");List list = userMapper.selectList(wrapper);list.forEach(System.out::println);}
}
3.5 联表使用mp的分页对象
@Autowiredprivate UserMapper userMapper;@Testvoid select4(){Page<User> page = new Page<>(1,3);QueryWrapper<User> wrapper=new QueryWrapper<>();wrapper.like("name","石");userMapper.findPage(page,wrapper);System.out.println("当前页的记录"+page.getRecords());System.out.println("获取总页数"+page.getPages());System.out.println("获取总条数"+page.getTotal());}
SpringBoot和Mybatis-Plus相关推荐
- Java项目:宠物商城系统(java+Springboot+Maven+mybatis+Vue+mysql)
源码获取:博客首页 "资源" 里下载! 一.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclis ...
- Java项目:食品溯源系统(java+Springboot+Maven+mybatis+Vue+mysql+wd)
源码获取:博客首页 "资源" 里下载! 一.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclis ...
- Java项目:精品养老院管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)
源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括:通知公告,老人管理,护工管理,问答管理等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8. ...
- Java项目:基于遗传算法学校排课系统(java+Springboot+Maven+mybatis+Vue+Mysql)
源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 排课管理,课程管理,讲师管理,班级管理,学生管理,教学资料,学习文档,在线测试,教材列表,教学设计,帮助中心 ...
- Java项目:花店商城系统(java+Springboot+Maven+mybatis+Vue+Mysql)
源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 商品的分类展示,用户的注册登录,购物车,订单结算,购物车加减,后台商品管理,分类管理,订单管理等等功能. 二 ...
- Java项目:平行志愿管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)
源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 系统管理,招生计划,学生管理,录取结果,自动分配,调剂管理等等. 二.项目运行 环境配置: Jdk1.8 + ...
- Java项目:学生管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)
源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 学生管理,教师管理,课程管理,成绩管理,系统管理等等. 二.项目运行 环境配置: Jdk1.8 + Tomc ...
- Java项目:医院管理系统(java+Springboot+Maven+Mybatis+Vue+Mysql)
源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括:医院挂号,退号,缴费,退费,检查申请单开立,科室管理,医生开单,挂号级别,检验项目开立,检查项目开立,医生接诊 ...
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...
SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 前言 表结构 maven配置 配置Druid 配置mybatis ...
- SpringBoot+MySQL+MyBatis+Shiro+AdminLTE
SpringBoot+MySQL+MyBatis+Shiro+AdminLTE 转载于:https://www.cnblogs.com/ddwk/p/11595682.html
最新文章
- python中将HTTP头部中的GMT时间转换成datetime时间格式
- The project cannot be built until build path errors are resolved的解决方法
- JetBrains DataGrip工具配置数据库过程详解
- windows10下使用virtualenv虚拟技术,管理多个python版本,多个项目包环境
- Ruby中的多行注释?
- 过去一个月发生了什么,C++再次真香了吗?
- 伍哥原创之安装nginx,mysql,php-fpm,redis
- A piecture of J2EE Core Patterns
- C# 使用 quartz.net 做定时任务
- 直线插补算法---matlab仿真程序
- 写给2017年报名海风的同学
- 游戏私服频繁被DDOS攻击怎么办
- 陈臣java_小菜学设计模式——享元模式
- 我们是怎么看中国企业服务的​
- 8086寻址方式图解
- 512mb内存linux,linux 内存详解
- 大数据时代的信息茧房问题
- 当 AI 邂逅绘画艺术,能迸发出怎样的火花?
- AKG K420 耳机线的维修
- 20句黑客经典语录,一个黑客的内心独白
热门文章
- 读史鉴今:女人的12种结局
- [JZOJ4274] 终章-剑之魂
- COGS 613 火车站饭店
- cym : BaseQuickAdapter.setOnItemChildClickListener失效点击没反应
- java计算机毕业设计糖果销售管理系统源码+系统+数据库+lw文档+mybatis+运行部署
- 51单片机调整时钟Proteus仿真
- Pxe +ks+ cobbler+ cobbler-web 实现centos6.7,centos7.2无人值守全自动化网络安装系统。
- BAPI_PO_CREATE1--单价增大10倍问题
- 发现贝叶斯的乐高积木
- http协议文字加图解