经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MyBatis » 查看文章
SpringBoot整合Mybatis-plus的具体过程使用
来源:jb51  时间:2022/6/27 10:53:57  对本文有异议

1.MyBatisX插件

在使用mybatis或者mybatis-plus时,我们可以安装IDEA的MyBatis的插件 - MyBatisX,

这样我们就可以实现点击接口跳转到sql文件, 点击sql文件可以跳转到接口的功能, 很方便.这个插件的功能还有很多, 可以查看MyBatis-Plus官网

安装方法:打开 IDEA,进入 File -> Settings -> Plugins -> Browse Repositories,输入 mybatisx 搜索并安装, 然后重启IDEA。

点击小鸟可实现跳转

2.引入依赖

在pom.xml添加如下依赖

  1. <!--数据库相关-->
  2. <dependency>
  3. <groupId>com.baomidou</groupId>
  4. <artifactId>mybatis-plus-boot-starter</artifactId>
  5. <version>3.4.1</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>mysql</groupId>
  9. <artifactId>mysql-connector-java</artifactId>
  10. <version>5.1.6</version>
  11. </dependency>
  12. <dependency>
  13. <groupId>com.alibaba</groupId>
  14. <artifactId>druid-spring-boot-starter</artifactId>
  15. <version>1.1.17</version>
  16. </dependency>

3.编写配置

application.properties

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/db_springtest?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#----------------------------配置mybatis-plus---------------------------
#配置sql文件路径
mybatis-plus.mapper-locations=classpath:/mapper/*.xml
#开启驼峰命名映射
mybatis-plus.configuration.map-underscore-to-camel-case=true
## 自定义sql中表名带前缀, 默认是实体名的小写, 如user, 但是数据库中是t_user, 所以设置加上前缀
mybatis-plus.global-config.db-config.table-prefix=t_

#----------------------------配置druid--------------------------------
#监控SpringBean
spring.datasource.druid.aop-patterns=com.limi.springboottest2.*  
# 底层开启功能,stat(sql监控),wall(防火墙)
spring.datasource.druid.filters=stat,wall

# 配置监控页功能
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=123456
spring.datasource.druid.stat-view-servlet.reset-enable=false

# 监控web
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.web-stat-filter.url-pattern=/*
spring.datasource.druid.web-stat-filter.exclusions='*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'

# 对上面filters里面的stat的详细配置
spring.datasource.druid.filter.stat.slow-sql-millis=1000
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.enabled=true
spring.datasource.druid.filter.wall.enabled=true
spring.datasource.druid.filter.wall.config.drop-table-allow=false

4.编写接口

UserMapper

  1. package com.limi.springboottest2.mapper;
  2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  3. import com.limi.springboottest2.entity.User;
  4. import org.springframework.stereotype.Repository;
  5. @Repository
  6. public interface UserMapper extends BaseMapper<User> {
  7. User getUserById(Integer id);
  8. }

UserMapper.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <!--
  6. namespace:必须有值,自定义的唯一字符串
  7. 推荐使用:dao 接口的全限定名称 -->
  8. <mapper namespace="com.limi.springboottest2.mapper.UserMapper">
  9. <select id="getUserById" resultType="com.limi.springboottest2.entity.User">
  10. select * from t_user where id = #{id}
  11. </select>
  12. </mapper>

注意要开启mapper接口文件的扫描

SpringbootTest2Application

  1. package com.limi.springboottest2;
  2. import org.mybatis.spring.annotation.MapperScan;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.boot.SpringApplication;
  5. import org.springframework.boot.autoconfigure.SpringBootApplication;
  6. import org.springframework.context.ConfigurableApplicationContext;
  7. @SpringBootApplication
  8. @MapperScan("com.limi.springboottest2.mapper")//扫描mapper
  9. public class SpringbootTest2Application {
  10. public static void main(String[] args) {
  11. //1、返回我们IOC容器
  12. ConfigurableApplicationContext run = SpringApplication.run(SpringbootTest2Application.class, args);
  13. }
  14. }

5.运行测试

HelloController

  1. package com.limi.springboottest2.controller;
  2. import com.limi.springboottest2.entity.User;
  3. import com.limi.springboottest2.mapper.UserMapper;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.web.bind.annotation.GetMapping;
  7. import org.springframework.web.bind.annotation.PathVariable;
  8. import org.springframework.web.bind.annotation.ResponseBody;
  9. import java.util.List;
  10. @Controller
  11. public class HelloController {
  12. @Autowired
  13. private UserMapper userMapper;
  14. //测试自己编写sql语句的查询方法
  15. @ResponseBody
  16. @GetMapping("/getUser/{id}")
  17. public User test1(@PathVariable("id") Integer id){
  18. User user = userMapper.getUserById(id);
  19. return user;
  20. }
  21. //测试mybatis-plus内置的查询方法
  22. @ResponseBody
  23. @GetMapping("/getAllUser")
  24. public List<User> test2(){
  25. List<User> userList = userMapper.selectList(null);//查询所有
  26. return userList;
  27. }
  28. }

6.完整代码

pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.7.0</version>
  9. <relativePath/> <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>com.limi</groupId>
  12. <artifactId>springboot-test2</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>springboot-test2</name>
  15. <description>Demo project for Spring Boot</description>
  16. <properties>
  17. <java.version>1.8</java.version>
  18. </properties>
  19. <dependencies>
  20. <dependency>
  21. <groupId>org.springframework.boot</groupId>
  22. <artifactId>spring-boot-starter-web</artifactId>
  23. </dependency>
  24. <dependency>
  25. <groupId>org.springframework.boot</groupId>
  26. <artifactId>spring-boot-devtools</artifactId>
  27. <scope>runtime</scope>
  28. <optional>true</optional>
  29. </dependency>
  30. <dependency>
  31. <groupId>org.projectlombok</groupId>
  32. <artifactId>lombok</artifactId>
  33. <optional>true</optional>
  34. </dependency>
  35. <dependency>
  36. <groupId>org.springframework.boot</groupId>
  37. <artifactId>spring-boot-starter-test</artifactId>
  38. <scope>test</scope>
  39. </dependency>
  40. <dependency>
  41. <groupId>org.springframework.boot</groupId>
  42. <artifactId>spring-boot-configuration-processor</artifactId>
  43. <optional>true</optional>
  44. </dependency>
  45. <!--数据库相关-->
  46. <dependency>
  47. <groupId>com.baomidou</groupId>
  48. <artifactId>mybatis-plus-boot-starter</artifactId>
  49. <version>3.4.1</version>
  50. </dependency>
  51. <dependency>
  52. <groupId>mysql</groupId>
  53. <artifactId>mysql-connector-java</artifactId>
  54. <version>5.1.6</version>
  55. </dependency>
  56. <dependency>
  57. <groupId>com.alibaba</groupId>
  58. <artifactId>druid-spring-boot-starter</artifactId>
  59. <version>1.1.17</version>
  60. </dependency>
  61. </dependencies>
  62. <build>
  63. <plugins>
  64. <plugin>
  65. <groupId>org.springframework.boot</groupId>
  66. <artifactId>spring-boot-maven-plugin</artifactId>
  67. <configuration>
  68. <excludes>
  69. <exclude>
  70. <groupId>org.projectlombok</groupId>
  71. <artifactId>lombok</artifactId>
  72. </exclude>
  73. </excludes>
  74. </configuration>
  75. </plugin>
  76. <!-- 下面插件作用是工程打包时,不将spring-boot-configuration-processor打进包内,让其只在编码的时候有用 -->
  77. <plugin>
  78. <groupId>org.springframework.boot</groupId>
  79. <artifactId>spring-boot-maven-plugin</artifactId>
  80. <configuration>
  81. <excludes>
  82. <exclude>
  83. <groupId>org.springframework.boot</groupId>
  84. <artifactId>spring-boot-configuration-processor</artifactId>
  85. </exclude>
  86. </excludes>
  87. </configuration>
  88. </plugin>
  89. </plugins>
  90. </build>
  91. </project>

application.properties

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/db_springtest?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#----------------------------配置mybatis-plus---------------------------
#配置sql文件路径
mybatis-plus.mapper-locations=classpath:/mapper/*.xml
#开启驼峰命名映射
mybatis-plus.configuration.map-underscore-to-camel-case=true
## 自定义sql中表名带前缀, 默认是实体名的小写, 如user, 但是数据库中是t_user, 所以设置加上前缀
mybatis-plus.global-config.db-config.table-prefix=t_

#----------------------------配置druid--------------------------------
#监控SpringBean
spring.datasource.druid.aop-patterns=com.limi.springboottest2.*  
# 底层开启功能,stat(sql监控),wall(防火墙)
spring.datasource.druid.filters=stat,wall

# 配置监控页功能
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=123456
spring.datasource.druid.stat-view-servlet.reset-enable=false

# 监控web
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.web-stat-filter.url-pattern=/*
spring.datasource.druid.web-stat-filter.exclusions='*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'

# 对上面filters里面的stat的详细配置
spring.datasource.druid.filter.stat.slow-sql-millis=1000
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.enabled=true
spring.datasource.druid.filter.wall.enabled=true
spring.datasource.druid.filter.wall.config.drop-table-allow=false

UserMapper.xml

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <!--
  6. namespace:必须有值,自定义的唯一字符串
  7. 推荐使用:dao 接口的全限定名称 -->
  8. <mapper namespace="com.limi.springboottest2.mapper.UserMapper">
  9. <select id="getUserById" resultType="com.limi.springboottest2.entity.User">
  10. select * from t_user where id = #{id}
  11. </select>
  12. </mapper>

SpringbootTest2Application

  1. package com.limi.springboottest2;
  2. import org.mybatis.spring.annotation.MapperScan;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.boot.SpringApplication;
  5. import org.springframework.boot.autoconfigure.SpringBootApplication;
  6. import org.springframework.context.ConfigurableApplicationContext;
  7. @SpringBootApplication
  8. @MapperScan("com.limi.springboottest2.mapper")//扫描mapper
  9. public class SpringbootTest2Application {
  10. public static void main(String[] args) {
  11. //1、返回我们IOC容器
  12. ConfigurableApplicationContext run = SpringApplication.run(SpringbootTest2Application.class, args);
  13. }
  14. }

User

  1. package com.limi.springboottest2.entity;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. import lombok.ToString;
  6. @Data
  7. @AllArgsConstructor
  8. @NoArgsConstructor
  9. @ToString
  10. public class User {
  11. private Integer id;
  12. private String userName;
  13. private String passWord;
  14. }

UserMapper

  1. package com.limi.springboottest2.entity;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. import lombok.ToString;
  6. @Data
  7. @AllArgsConstructor
  8. @NoArgsConstructor
  9. @ToString
  10. public class User {
  11. private Integer id;
  12. private String userName;
  13. private String passWord;
  14. }

HelloController

  1. package com.limi.springboottest2.controller;
  2. import com.limi.springboottest2.entity.User;
  3. import com.limi.springboottest2.mapper.UserMapper;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.web.bind.annotation.GetMapping;
  7. import org.springframework.web.bind.annotation.PathVariable;
  8. import org.springframework.web.bind.annotation.ResponseBody;
  9. import java.util.List;
  10. @Controller
  11. public class HelloController {
  12. @Autowired
  13. private UserMapper userMapper;
  14. //测试自己编写sql语句的查询方法
  15. @ResponseBody
  16. @GetMapping("/getUser/{id}")
  17. public User test1(@PathVariable("id") Integer id){
  18. User user = userMapper.getUserById(id);
  19. return user;
  20. }
  21. //测试mybatis-plus内置的查询方法
  22. @ResponseBody
  23. @GetMapping("/getAllUser")
  24. public List<User> test2(){
  25. List<User> userList = userMapper.selectList(null);//查询所有
  26. return userList;
  27. }
  28. }

到此这篇关于SpringBoot整合Mybatis-plus的具体过程使用的文章就介绍到这了,更多相关SpringBoot整合mybatis-plus内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号