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加入相关配置

  1. <!-- spring-boot-starter-parent 和 mybatis-plus-boot-starter 有版本要求-->
  2. <parent>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-parent</artifactId>
  5. <version>2.0.3.RELEASE</version>
  6. </parent>
  7.  
  8.  
  9. <dependencies>
  10. <!-- spring-boot -->
  11. <dependency>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-starter-web</artifactId>
  14. </dependency>
  15.  
  16. <dependency>
  17. <groupId>org.springframework.boot</groupId>
  18. <artifactId>spring-boot-starter</artifactId>
  19. </dependency>
  20. <dependency>
  21. <groupId>org.springframework.boot</groupId>
  22. <artifactId>spring-boot-starter-test</artifactId>
  23. <scope>test</scope>
  24. </dependency>
  25.  
  26.  
  27. <!--mybatis-plus自动的维护了mybatis以及mybatis-spring的依赖,
  28. 在springboot中这三者不能同时的出现,避免版本的冲突,表示:跳进过这个坑-->
  29. <dependency>
  30. <groupId>com.baomidou</groupId>
  31. <artifactId>mybatis-plus-boot-starter</artifactId>
  32. <version>3.0.1</version>
  33. </dependency>
  34.  
  35. <!-- 引入Druid依赖,阿里巴巴所提供的数据源 -->
  36. <dependency>
  37. <groupId>com.alibaba</groupId>
  38. <artifactId>druid</artifactId>
  39. <version>1.0.29</version>
  40. </dependency>
  41.  
  42. <!-- 提供mysql驱动 -->
  43. <dependency>
  44. <groupId>mysql</groupId>
  45. <artifactId>mysql-connector-java</artifactId>
  46. <version>5.1.38</version>
  47. </dependency>
  48.  
  49. <dependency>
  50. <groupId>org.projectlombok</groupId>
  51. <artifactId>lombok</artifactId>
  52. <version>1.16.16</version>
  53. </dependency>
  54.  
  55. </dependencies>

2、在resources中添加application.yml,设置mysql相关配置

  1. server:
  2. port: 2525
  3.  
  4. # 该配置的名称是固定的,不可以改变,否则将不能自动加载到数据源中
  5. spring:
  6. datasource:
  7. # 使用druid数据源
  8. type: com.alibaba.druid.pool.DruidDataSource
  9. driver-class-name: com.mysql.jdbc.Driver
  10. url: jdbc:mysql://192.168.3.172:3306/poc?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
  11. username: devuser
  12. password: dev123
  13. filters: stat
  14. maxActive: 20
  15. initialSize: 1
  16. maxWait: 60000
  17. minIdle: 1
  18. timeBetweenEvictionRunsMillis: 60000
  19. minEvictableIdleTimeMillis: 300000
  20. validationQuery: select 1 FROM DUAL
  21. testWhileIdle: true
  22. testOnBorrow: false
  23. testOnReturn: false
  24. poolPreparedStatements: true
  25. maxOpenPreparedStatements: 20

3、在基类中添加表名和表名中对应的字段名

  1. @Data
  2. @NoArgsConstructor
  3. @AllArgsConstructor
  4. @TableName("tb_test_student") //对应表名
  5. public class Student implements Serializable {
  6.  
  7. //对应id,可不填
  8. @TableId(value = "id")
  9. private int id;
  10.  
  11. //对应字段名,如果属性名和字段名一致,可不填
  12. @TableField("name")
  13. private String name;
  14.  
  15. private String school;
  16.  
  17. private String city;
  18.  
  19. //表示表中没有这个字段,如果不加该注释,会抛异常
  20. @TableField(exist = false)
  21. private String address;
  22. }

4、定义mapper接口,继承BaseMapper<T>接口,该接口中封装了Sql

  1. public interface StudentMapper extends BaseMapper<Student> {
  2.  
  3. }

5、在启动类中添加mapper扫描的包

  1. @SpringBootApplication
  2. @MapperScan("com.springboot.mybatisplus.mapper")
  3. public class App {
  4.  
  5. public static void main(String[] args) {
  6. SpringApplication.run(App.class,args);
  7. }
  8. }

5、调用mapper接口即可

  1. @RestController
  2. @RequestMapping("/mybatisplus")
  3. public class TestMain {
  4.  
  5. @Autowired
  6. private StudentMapper studentMapper;
  7.  
  8. @GetMapping("/list")
  9. public List<Student> list(){
  10. List<Student> students = studentMapper.selectList(null);
  11. return students;
  12. }
  13.  
  14.  
  15. @GetMapping("/save")
  16. public String save(){
  17. Student student = new Student();
  18. student.setId(2);
  19. student.setCity("杭州");
  20. student.setName("马云");
  21. student.setSchool("杭州师范");
  22. studentMapper.insert(student);
  23. return "success";
  24. }
  25.  
  26. }

打印sql:

  1. mybatis-plus:
  2. configuration:
  3. log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

具体的API请参照mybatis-plus官网:http://mp.baomidou.com/guide/

SpringBoot 整合 Mybatis-Plus + Mysql的更多相关文章

  1. springboot整合mybatis连接mysql数据库出现SQLException异常

    在springboot整合mybatis连接数据库的时候,项目中遇到一个SQLException,我检查了properties配置文件,看数据源有没有配错,检查有没有打错字,在数据库中把sql语句查询 ...

  2. SpringBoot 整合 Mybatis 和 Mysql (详细版)

    结构如下 1.引入相关依赖 <!--mysql--><dependency> <groupId>mysql</groupId> <artifact ...

  3. kotlin + springboot整合mybatis操作mysql数据库及单元测试

    项目mybatis操作数据库参考: http://how2j.cn/k/springboot/springboot-mybatis/1649.html?p=78908 junit对controller ...

  4. SpringBoot 整合 Mybatis + Mysql——XML配置方式

    一.介绍 SpringBoot有两种方法与数据库建立连接,一种是集成Mybatis,另一种用JdbcTemplate,本文主要讨论集成Mybatis方式. SpringBoot整合Mybatis也有两 ...

  5. 学习springboot整合mybatis并编写测试类

    报名立减200元.暑假直降6888. 邀请链接:http://www.jnshu.com/login/1/20535344 邀请码:20535344 遇到的问题: 1.原因是在启动类上只有一个@Map ...

  6. SpringBoot整合Mybatis之项目结构、数据源

    已经有好些日子没有总结了,不是变懒了,而是我一直在奋力学习springboot的路上,现在也算是完成了第一阶段的学习,今天给各位总结总结. 之前在网上找过不少关于springboot的教程,都是一些比 ...

  7. SpringBoot整合Mybatis【非注解版】

    接上文:SpringBoot整合Mybatis[注解版] 一.项目创建 新建一个工程 ​ 选择Spring Initializr,配置JDK版本 ​ 输入项目名 ​ 选择构建web项目所需的state ...

  8. springboot学习随笔(四):Springboot整合mybatis(含generator自动生成代码)

    这章我们将通过springboot整合mybatis来操作数据库 以下内容分为两部分,一部分主要介绍generator自动生成代码,生成model.dao层接口.dao接口对应的sql配置文件 第一部 ...

  9. springboot整合mybatis出现的一些问题

    springboot整合mybatis非常非常的简单,简直简单到发指.但是也有一些坑,这里我会详细的指出会遇到什么问题,并且这些配置的作用 整合mybatis,无疑需要mapper文件,实体类,dao ...

  10. springBoot整合mybatis、jsp 或 HTML

    springBoot整合mybatis.jsp Spring Boot的主要优点: 1:  为所有Spring开发者更快的入门: 2:  开箱即用,提供各种默认配置来简化项目配置: 3:  内嵌式容器 ...

随机推荐

  1. AT2667-[AGC017D]Game on Tree【SG函数】

    正题 题目链接:https://www.luogu.com.cn/problem/AT2667 题目大意 给出\(n\)个点的一棵树,每次可以割掉一条和根节点联通的边,轮流操作直到不能操作的输,求是否 ...

  2. Winform 空闲时间(鼠标键盘无操作)

    前言 Winform 在特定情况下,需要判断软件空闲时间(鼠标键盘无操作),然后在做一下一些操作. 实现 做了一个简单的例子,新建一个窗体,然后拖两个控件(Timer控件和label控件) using ...

  3. 【vue】使用 Video.js 播放视频

    目录 安装 引入 使用 参考文档 环境: vue 2.0+ element ui (这里的代码用了elmentui的按钮样式,可以不用elment ui的样式) 安装 在项目中安装 video.js. ...

  4. Redux使用指南

    Redux使用指南 00-简介 本文主要是用来记录Redux结合React的使用过程,帮助大家在使用Redux的时候,能够更好的理解Redux,从而更好地使用它 01-为什么需要Redux JavaS ...

  5. Spring源码阅读一

    引导: 众所周知,阅读spring源码最开始的就是去了解spring bean的生命周期:bean的生命周期是怎么样的呢,见图知意: 大致流程: 首先后通过BeanDefinitionReader读取 ...

  6. 1.JDBC编程六步走以及实现案例

    1.注册驱动:通知Java程序我们要连接的是哪个品牌的数据库 2.获取数据库连接:Java进程和Mysql进程之间的通道开启了 3.获取数据库操作对象:这个对象是用来执行sql语句的 4.执行SQL语 ...

  7. Linux基础安全配置(centos7)

    1.帐户口令的生存期不长于90天 sed -i.old 's#99999#90#g' /etc/login.defs egrep "90" /etc/login.defs 2.密码 ...

  8. NOIP模拟77

    前言 感觉最近太飘了,这次考试是挺好的一次打击(好像也不算是). 犯了一个智障错误(双向边一倍数组 100pts->30pts)别的就.. T1 最大或 解题思路 一开始我以为是一个找规律,然而 ...

  9. 『Mivik的萌新赛 & Chino的比赛 2020』T2 题解 Galgame

    如果这是我最后一篇题解,请每年为我上坟. Galgame 题目传送门 Decription as_lky 搞到了很多 Galgame(真的很多!).一款 Galgame 可以被描述为很多场景(Scen ...

  10. C++ IDE或编辑器安装

    IDE介绍 上节课我们讲了C++编译器,可是没有好的编辑器,只用记事本打代码,这谁受得了.Linux vim至少还有代码高亮(即我作文里经常会出现的"彩色的代码"),记事本连高亮都 ...