SpringBoot 整合 Mybatis-Plus + Mysql
mybatis-plus是mybatis的一款插件,它的主要作用是快速开发,省略mybatis的配置,具体的功能请参照官网。
开发环境:
springboot,maven,mybatis-plus,mysql,jdk1.8,lombok,阿里druid数据源
整合步骤:
1、在pom.xml加入相关配置
2、在resources中添加application.yml,设置mysql相关配置
3、在基类中添加表名和表名中对应的字段名
4、定义mapper接口,继承BaseMapper<T>接口,该接口中封装了Sql
5、在启动类中添加mapper扫描的包
5、调用mapper接口即可
项目架构:
具体步骤代码:
1、在pom.xml加入相关配置
- <!-- spring-boot-starter-parent 和 mybatis-plus-boot-starter 有版本要求-->
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.0.3.RELEASE</version>
- </parent>
- <dependencies>
- <!-- spring-boot -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- </dependency>
- <!--mybatis-plus自动的维护了mybatis以及mybatis-spring的依赖,
- 在springboot中这三者不能同时的出现,避免版本的冲突,表示:跳进过这个坑-->
- <dependency>
- <groupId>com.baomidou</groupId>
- <artifactId>mybatis-plus-boot-starter</artifactId>
- <version>3.0.1</version>
- </dependency>
- <!-- 引入Druid依赖,阿里巴巴所提供的数据源 -->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid</artifactId>
- <version>1.0.29</version>
- </dependency>
- <!-- 提供mysql驱动 -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.38</version>
- </dependency>
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <version>1.16.16</version>
- </dependency>
- </dependencies>
2、在resources中添加application.yml,设置mysql相关配置
- server:
- port: 2525
- # 该配置的名称是固定的,不可以改变,否则将不能自动加载到数据源中
- spring:
- datasource:
- # 使用druid数据源
- type: com.alibaba.druid.pool.DruidDataSource
- driver-class-name: com.mysql.jdbc.Driver
- url: jdbc:mysql://192.168.3.172:3306/poc?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
- username: devuser
- password: dev123
- filters: stat
- maxActive: 20
- initialSize: 1
- maxWait: 60000
- minIdle: 1
- timeBetweenEvictionRunsMillis: 60000
- minEvictableIdleTimeMillis: 300000
- validationQuery: select 1 FROM DUAL
- testWhileIdle: true
- testOnBorrow: false
- testOnReturn: false
- poolPreparedStatements: true
- maxOpenPreparedStatements: 20
3、在基类中添加表名和表名中对应的字段名
- @Data
- @NoArgsConstructor
- @AllArgsConstructor
- @TableName("tb_test_student") //对应表名
- public class Student implements Serializable {
- //对应id,可不填
- @TableId(value = "id")
- private int id;
- //对应字段名,如果属性名和字段名一致,可不填
- @TableField("name")
- private String name;
- private String school;
- private String city;
- //表示表中没有这个字段,如果不加该注释,会抛异常
- @TableField(exist = false)
- private String address;
- }
4、定义mapper接口,继承BaseMapper<T>接口,该接口中封装了Sql
- public interface StudentMapper extends BaseMapper<Student> {
- }
5、在启动类中添加mapper扫描的包
- @SpringBootApplication
- @MapperScan("com.springboot.mybatisplus.mapper")
- public class App {
- public static void main(String[] args) {
- SpringApplication.run(App.class,args);
- }
- }
5、调用mapper接口即可
- @RestController
- @RequestMapping("/mybatisplus")
- public class TestMain {
- @Autowired
- private StudentMapper studentMapper;
- @GetMapping("/list")
- public List<Student> list(){
- List<Student> students = studentMapper.selectList(null);
- return students;
- }
- @GetMapping("/save")
- public String save(){
- Student student = new Student();
- student.setId(2);
- student.setCity("杭州");
- student.setName("马云");
- student.setSchool("杭州师范");
- studentMapper.insert(student);
- return "success";
- }
- }
打印sql:
- mybatis-plus:
- configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
具体的API请参照mybatis-plus官网:http://mp.baomidou.com/guide/
SpringBoot 整合 Mybatis-Plus + Mysql的更多相关文章
- springboot整合mybatis连接mysql数据库出现SQLException异常
在springboot整合mybatis连接数据库的时候,项目中遇到一个SQLException,我检查了properties配置文件,看数据源有没有配错,检查有没有打错字,在数据库中把sql语句查询 ...
- SpringBoot 整合 Mybatis 和 Mysql (详细版)
结构如下 1.引入相关依赖 <!--mysql--><dependency> <groupId>mysql</groupId> <artifact ...
- kotlin + springboot整合mybatis操作mysql数据库及单元测试
项目mybatis操作数据库参考: http://how2j.cn/k/springboot/springboot-mybatis/1649.html?p=78908 junit对controller ...
- SpringBoot 整合 Mybatis + Mysql——XML配置方式
一.介绍 SpringBoot有两种方法与数据库建立连接,一种是集成Mybatis,另一种用JdbcTemplate,本文主要讨论集成Mybatis方式. SpringBoot整合Mybatis也有两 ...
- 学习springboot整合mybatis并编写测试类
报名立减200元.暑假直降6888. 邀请链接:http://www.jnshu.com/login/1/20535344 邀请码:20535344 遇到的问题: 1.原因是在启动类上只有一个@Map ...
- SpringBoot整合Mybatis之项目结构、数据源
已经有好些日子没有总结了,不是变懒了,而是我一直在奋力学习springboot的路上,现在也算是完成了第一阶段的学习,今天给各位总结总结. 之前在网上找过不少关于springboot的教程,都是一些比 ...
- SpringBoot整合Mybatis【非注解版】
接上文:SpringBoot整合Mybatis[注解版] 一.项目创建 新建一个工程 选择Spring Initializr,配置JDK版本 输入项目名 选择构建web项目所需的state ...
- springboot学习随笔(四):Springboot整合mybatis(含generator自动生成代码)
这章我们将通过springboot整合mybatis来操作数据库 以下内容分为两部分,一部分主要介绍generator自动生成代码,生成model.dao层接口.dao接口对应的sql配置文件 第一部 ...
- springboot整合mybatis出现的一些问题
springboot整合mybatis非常非常的简单,简直简单到发指.但是也有一些坑,这里我会详细的指出会遇到什么问题,并且这些配置的作用 整合mybatis,无疑需要mapper文件,实体类,dao ...
- springBoot整合mybatis、jsp 或 HTML
springBoot整合mybatis.jsp Spring Boot的主要优点: 1: 为所有Spring开发者更快的入门: 2: 开箱即用,提供各种默认配置来简化项目配置: 3: 内嵌式容器 ...
随机推荐
- P6499-[COCI2016-2017#2]Burza【状压dp】
正题 题目链接:https://www.luogu.com.cn/problem/P6499 题目大意 \(n\)个点的一棵树,开始有一个棋子在根处,开始先手选择一个点封锁,然后后手封锁棋子所在点然后 ...
- FastAPI(38)- 模拟一个跨域场景
同源策略 https://www.cnblogs.com/poloyy/p/15345184.html CORS https://www.cnblogs.com/poloyy/p/15345871.h ...
- 踩坑系列《十二》解决连接云服务器的redis失败
在本地连接服务器redis的时候,发现连接失败,这是因为服务器上的redis开启保护模式运行,该模式下是无法进行远程连接的.只需要修改redis目录下的redis.conf文件,找到 protecte ...
- Pytorch学习2020春-1-线性回归
线性回归 主要内容包括: 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用pytorch的简洁实现 线性回归的基本要素 模型 为了简单起见,这里我们假设价格只取决于房屋状况的两个因素, ...
- vue 动态菜单以及动态路由加载、刷新采的坑
需求: 从接口动态获取子菜单数据 动态加载 要求只有展开才加载子菜单数据 支持刷新,页面显示正常 思路: 一开始比较乱,思路很多.想了很多 首先路由和菜单共用一个全局route, 数据的传递也是通过s ...
- PTA实验7-2-3 求矩阵的局部极大值 (15分)
实验7-2-3 求矩阵的局部极大值 (15分) 给定M行N列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,那么就称元素A[i][j]是矩阵的局部极大值.本题要求给定矩阵的全 ...
- Fikker 管理平台弱口令
官网:www.fikker.com 应用介绍:Fikker 是一款面向 CDN/站长 的专业级网站缓存(Webcache)和反向代理服务器软件(Reverse Proxy Server). 发现过程: ...
- VUE中v-for更新检测
口诀: 数组变更方法,就会导致 v-for 更新,页面更新 数组非变更方法:返回新数组,就不会导致 v-for 更新,更新值检测不到可采用覆盖或者 this.$set() 数组变更方法如下: 1. a ...
- Map中getOrDefault()与数值进行比较
一般用哈希表计数时,value类型通常为Integer.如果想比较某个key出现的次数,使用get(key)与某个数值进行比较是有问题的.当哈希表中并不包含该key时,因为此时get方法返回值是nul ...
- the Agiles Scrum Meeting 博客汇总
the Agiles 团队博客目录 一.Scrum Meeting 1. Alpha the Agiles Scrum Meeting 1 the Agiles Scrum Meeting 2 the ...