SpringBoot整合Mybatis-plus的具体过程使用

作者:鸣鼓ming 时间:2022-06-15 19:38:52 

1.MyBatisX插件

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

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

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

SpringBoot整合Mybatis-plus的具体过程使用

点击小鸟可实现跳转

SpringBoot整合Mybatis-plus的具体过程使用

SpringBoot整合Mybatis-plus的具体过程使用

2.引入依赖

在pom.xml添加如下依赖

<!--数据库相关-->
       <dependency>
           <groupId>com.baomidou</groupId>
           <artifactId>mybatis-plus-boot-starter</artifactId>
           <version>3.4.1</version>
       </dependency>
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.6</version>
       </dependency>
       <dependency>
           <groupId>com.alibaba</groupId>
           <artifactId>druid-spring-boot-starter</artifactId>
           <version>1.1.17</version>
       </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.编写接口

SpringBoot整合Mybatis-plus的具体过程使用

UserMapper

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

SpringBoot整合Mybatis-plus的具体过程使用

UserMapper.xml

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

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

SpringbootTest2Application

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

5.运行测试

HelloController

package com.limi.springboottest2.controller;
import com.limi.springboottest2.entity.User;
import com.limi.springboottest2.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
public class HelloController {
   @Autowired
   private UserMapper userMapper;
   //测试自己编写sql语句的查询方法
   @ResponseBody
   @GetMapping("/getUser/{id}")
   public User test1(@PathVariable("id") Integer id){
       User user = userMapper.getUserById(id);
       return user;
   }
   //测试mybatis-plus内置的查询方法
   @ResponseBody
   @GetMapping("/getAllUser")
   public List<User> test2(){
       List<User> userList = userMapper.selectList(null);//查询所有
       return userList;
   }
}

SpringBoot整合Mybatis-plus的具体过程使用

SpringBoot整合Mybatis-plus的具体过程使用

6.完整代码

SpringBoot整合Mybatis-plus的具体过程使用

pom.xml

<?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.7.0</version>
       <relativePath/> <!-- lookup parent from repository -->
   </parent>
   <groupId>com.limi</groupId>
   <artifactId>springboot-test2</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <name>springboot-test2</name>
   <description>Demo project for Spring Boot</description>
   <properties>
       <java.version>1.8</java.version>
   </properties>
   <dependencies>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-web</artifactId>
       </dependency>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-devtools</artifactId>
           <scope>runtime</scope>
           <optional>true</optional>
       </dependency>
       <dependency>
           <groupId>org.projectlombok</groupId>
           <artifactId>lombok</artifactId>
           <optional>true</optional>
       </dependency>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-test</artifactId>
           <scope>test</scope>
       </dependency>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-configuration-processor</artifactId>
           <optional>true</optional>
       </dependency>
       <!--数据库相关-->
       <dependency>
           <groupId>com.baomidou</groupId>
           <artifactId>mybatis-plus-boot-starter</artifactId>
           <version>3.4.1</version>
       </dependency>
       <dependency>
           <groupId>mysql</groupId>
           <artifactId>mysql-connector-java</artifactId>
           <version>5.1.6</version>
       </dependency>
       <dependency>
           <groupId>com.alibaba</groupId>
           <artifactId>druid-spring-boot-starter</artifactId>
           <version>1.1.17</version>
       </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>
           <!-- 下面插件作用是工程打包时,不将spring-boot-configuration-processor打进包内,让其只在编码的时候有用 -->
           <plugin>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-maven-plugin</artifactId>
               <configuration>
                   <excludes>
                       <exclude>
                           <groupId>org.springframework.boot</groupId>
                           <artifactId>spring-boot-configuration-processor</artifactId>
                       </exclude>
                   </excludes>
               </configuration>
           </plugin>
       </plugins>
   </build>
</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

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

SpringbootTest2Application

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

User

package com.limi.springboottest2.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class User {
   private Integer id;
   private String userName;
   private String passWord;
}

UserMapper

package com.limi.springboottest2.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class User {
   private Integer id;
   private String userName;
   private String passWord;
}

HelloController

package com.limi.springboottest2.controller;
import com.limi.springboottest2.entity.User;
import com.limi.springboottest2.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
public class HelloController {
   @Autowired
   private UserMapper userMapper;
   //测试自己编写sql语句的查询方法
   @ResponseBody
   @GetMapping("/getUser/{id}")
   public User test1(@PathVariable("id") Integer id){
       User user = userMapper.getUserById(id);
       return user;
   }
   //测试mybatis-plus内置的查询方法
   @ResponseBody
   @GetMapping("/getAllUser")
   public List<User> test2(){
       List<User> userList = userMapper.selectList(null);//查询所有
       return userList;
   }
}

来源:https://blog.csdn.net/qq_41865229/article/details/125416345

标签:SpringBoot,mybatis-plus,mybatis
0
投稿

猜你喜欢

  • springBoot整合rabbitMQ的方法详解

    2022-08-19 02:28:33
  • android使用PullToRefresh实现下拉刷新和上拉加载

    2023-08-06 11:06:58
  • 关于Java float和double精度范围大小

    2023-11-29 00:52:01
  • 深入探究如何使用Java编写MapReduce程序

    2022-10-17 18:40:04
  • Java编程实现获取当前代码行行号的方法示例

    2021-06-28 06:51:14
  • Java编程实现轨迹压缩算法开放窗口实例代码

    2021-12-03 09:54:07
  • 一文带你搞懂Redis分布式锁

    2021-09-26 12:56:14
  • Java排序算法总结之希尔排序

    2022-07-16 13:19:11
  • java使用ffmpeg处理视频的方法

    2023-07-28 22:58:08
  • Java IO学习之缓冲输入流(BufferedInputStream)

    2021-10-08 22:30:23
  • 关于Java中@SuppressWarnings的正确使用方法

    2023-07-22 17:17:58
  • java实现多线程之定时器任务

    2021-07-10 08:56:14
  • Mybatis延迟加载的实现方式

    2023-08-19 11:07:32
  • Java文件操作工具类fileUtil实例【文件增删改,复制等】

    2023-11-28 08:39:00
  • java web实现邮箱激活与忘记密码

    2023-11-18 09:35:26
  • 详解如何在SpringBoot项目中使用统一返回结果

    2023-10-30 16:41:21
  • IDEA实现添加 前进后退 到工具栏的操作

    2021-08-30 21:34:48
  • 新手入门Jvm-- JVM对象创建与内存分配机制

    2021-11-04 19:28:10
  • Java基础知识之Java语言概述

    2023-11-28 04:36:35
  • 使用AOP的@Around后无返回值的解决

    2023-11-24 13:04:09
  • asp之家 软件编程 m.aspxhome.com