Spring Boot 整合 MyBatis-Plus

Mybatis Plus

国产的开源框架,基于MyBatis。核心功能就是简化MyBatis的开发,提高效率

MyBatis Plus快速上手

Spring Boot(2.5.3)+MyBatis Plus(国产开源框架,并没有接入Spring官方孵化器)

  1. 新建项目

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  2. 在pom文件中导入MyBatis Plus依赖(如果连接的是云服务器上的数据库,请配置数据库连接池)

    		<!-- MyBatis Plus依赖 -->
    		<dependency>
    			<groupId>com.baomidou</groupId>
    			<artifactId>mybatis-plus-boot-starter</artifactId>
    			<version>3.4.3.1</version>
    		</dependency>
    

    我的pom文件:

    <?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.5.3</version>
    		<relativePath/> <!-- lookup parent from repository -->
    	</parent>
    	<groupId>com.ssakura</groupId>
    	<artifactId>mybatisplus</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<name>mybatisplus</name>
    	<description>Demo project for Spring Boot</description>
    	<properties>
    		<java.version>11</java.version>
    	</properties>
    	<dependencies>
    		<!-- MyBatis Plus依赖 -->
    		<dependency>
    			<groupId>com.baomidou</groupId>
    			<artifactId>mybatis-plus-boot-starter</artifactId>
    			<version>3.4.3.1</version>
    		</dependency>
    
    
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-thymeleaf</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    
    		<dependency>
    			<groupId>mysql</groupId>
    			<artifactId>mysql-connector-java</artifactId>
    			<scope>runtime</scope>
    		</dependency>
    
    		<dependency>
    			<groupId>com.alibaba</groupId>
    			<artifactId>druid</artifactId>
    			<version>1.2.5</version>
    		</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>
    	</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. 配置数据源信息

    在这里插入图片描述

  4. 新建表数据

    /*
     Navicat Premium Data Transfer
    
     Source Server         : sakura
     Source Server Type    : MySQL
     Source Server Version : 50734
     Source Schema         : mybatisplus
    
     Target Server Type    : MySQL
     Target Server Version : 50734
     File Encoding         : 65001
    
     Date: 10/08/2021 11:44:42
    */
    
    SET NAMES utf8mb4;
    SET FOREIGN_KEY_CHECKS = 0;
    
    -- ----------------------------
    -- Table structure for user
    -- ----------------------------
    DROP TABLE IF EXISTS `user`;
    CREATE TABLE `user`  (
      `id` bigint(100) NOT NULL,
      `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
      `age` int(11) NOT NULL,
      `create_time` datetime NULL DEFAULT NULL,
      `update_time` datetime NULL DEFAULT NULL,
      `flag` int(11) UNSIGNED NOT NULL DEFAULT 1,
      `status` int(11) NULL DEFAULT NULL,
      `deleted` int(11) NULL DEFAULT 0,
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
    SET FOREIGN_KEY_CHECKS = 1;
    
    

    在这里插入图片描述

  5. 创建实体类

    package com.ssakura.mybatisplus.entity;
    
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @Data
    @NoArgsConstructor
    public class User {
         
        private Integer id;
        private String name;
        private Integer age;
    
        public User(String name, Integer age) {
         
            this.name = name;
            this.age = age;
        }
    
        @Override
        public String toString() {
         
            return "User{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    }
    
  6. 创建Mapper接口

    package com.ssakura.mybatisplus.mapper;
    
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import com.ssakura.mybatisplus.entity.User;
    
    //动态代理(实现类是程序运行时动态生成,Mybatis-plus通过cjlib动态代理方式来实现)
    public interface UserMapper extends BaseMapper<User> {
         
        
        
    }
    
  7. 创建测试类

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  8. 测试,查询所有数据(selectList)

    package com.sakura.mybatisplus.mapper;
    
    import org.junit.jupiter.api.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    
    @SpringBootTest
    class UserMapperTest {
         
        @Autowired
        private UserMapper userMapper;
    
        @Test
        void test(){
         
            //查询所有数据
            //forEach方法是Java8的新特性,可以将结果集里面的数据遍历操作
            userMapper.selectList(null).forEach(System.out::println);
        }
    }
    

    加上@MapperScan注解,否则无法加载Mapper bean

    在这里插入图片描述

    在这里插入图片描述

  9. 查看BaseMapper里面的方法:

    //
    // Source code recreated from a .class file by IntelliJ IDEA
    // (powered by FernFlower decompiler)
    //
    
    package com.baomidou.mybatisplus.core.mapper;
    
    import com.baomidou.mybatisplus.core.conditions.Wrapper;
    import com.baomidou.mybatisplus.core.metadata.IPage;
    import java.io.Serializable;
    import java.util.Collection;
    import java.util.List;
    import java.util.Map;
    import org.apache.ibatis.annotations.Param;
    
    public interface BaseMapper<T> extends Mapper<T> {
         
        int insert(T entity);
    
        int deleteById(Serializable id);
    
        int deleteByMap(@Param("cm") Map<String, Object> columnMap);
    
        int delete(@Param("ew") Wrapper<T> queryWrapper);
    
        int deleteBatchIds(@Param("coll") Collection<? extends Serializable> idList);
    
        int updateById(@Param("et") T entity);
    
        int update(@Param("et") T entity, @Param("ew") Wrapper<T> updateWrapper);
    
        T selectById(Serializable id);
    
        List<T> selectBatchIds(@Param("coll") Collection<? extends Serializable> idList);
    
        List<
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
非常感谢您的提问,我可以回答关于 Spring Boot 整合 MyBatis-Plus 的增删改查项目问题。这样的项目通常都需要进行以下配置和实现: 1. 引入 MyBatis-Plus 和 MyBatis-Spring-Boot-Starter 依赖: ``` <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>3.4.3</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> ``` 2. 配置 MyBatis-Plus: 在 application.properties 文件中添加以下配置: ``` mybatis-plus.mapper-locations=classpath:mapper/*.xml mybatis-plus.type-aliases-package=com.example.demo.model ``` 3. 实现对应的 Mapper: 定义一个对应的实体类和对应的 Mapper 接口,如下所示: ``` // User.java 实体类 @Data public class User { private Long id; private String name; private Integer age; } // UserMapper.java 接口类 @Repository public interface UserMapper extends BaseMapper<User> {} ``` 4. 实现增删改查: 定义一个对应的 Service 类,通过调用 UserMapper 接口中的方法实现增删改查操作,如下所示: ``` @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public List<User> listUsers() { return userMapper.selectList(null); } @Override public int saveUser(User user) { return userMapper.insert(user); } @Override public int updateUser(User user) { return userMapper.updateById(user); } @Override public int deleteUserById(Long id) { return userMapper.deleteById(id); } } ``` 以上就是 Spring Boot 整合 MyBatis-Plus 的增删改查项目的主要流程和实现细节,如果有任何问题欢迎随时咨询!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zjojk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值