SpringBoot集成MyBatis或者MyBatis-plus的MVC的三层架构

mybatis的三层架构书写

image-20221018172040646

mybatis-plus的三层架构书写

image-20221018172528304

举个栗子 ​🍃

mybatis-plus使用分页插件

mybatis-plus中集成了import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

下面举例一个条件查询

引入依赖

<?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.6.2</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>cc.souffle</groupId>
    <artifactId>mybatis_plus_case</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mybatis_plus_case</name>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <!--web起步依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--mybatis-plus起步依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>
        <!--数据库依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--lombok依赖-->
        <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>

三层架构的实现

根据mybatis-plus自动生成的三层架构进行实现

image-20221017203014924

进行数据库的指定

,在分页的操作中, 因为不同数据库的拼接语句不一样所有需要指定数据库类型

@Configuration
public class MpConfig {
    /**
     * 配置MP 分页插件MybatisPlusInterceptor
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        //指定数据库类型, 这样配置之后, 会自动拼接limit这个关键字语句  ;  因为不同的数据看的拼接语句不一样所有需要指定数据库类型
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
        mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);


        return mybatisPlusInterceptor;
    }
}

测试操作

    //条件查询:根据姓名、性别、出生年月组合条件进行查询  select * from user where user_name like "%周%" and user_sex=0  and user_birthday  between ? and ?
    //🍭思考:根据条件查询,那么查询的list对象是null还是元素为size=0
    @Test
    void selectByQueryWrapper() {
        //姓名
        String userName = "周";
        //性别
        Integer userSex = null;
        //出生年月最小值
        LocalDate userBirthDayMin = null;
        //出生年月最大值
        LocalDate userBirthDayMax = null;

        //根据以上4个变量来动态拼接SQL, 定义查询条件
        QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
        //这里的Right 表示的是 百分号% 位置, 右边就是指定为放在右边数据的右边, 即 周%
        userQueryWrapper.likeLeft(StringUtils.isNotBlank(userName),"user_name","周");
        userQueryWrapper.eq(userSex != null,"user_sex",0);
        userQueryWrapper.between(((userBirthDayMin !=null ) && (userBirthDayMax != null)),"user_birthday","2020-01-01","2010-11-05");
        // 第一个参数current: 表示需要第几页的数据, 第二个参数size,  表示一页多少个数据
        Page<User> userPage = new Page<>(1,4);
        Page<User> userPageData = userMapper.selectPage(userPage, userQueryWrapper);
        
        //数据需要进行单独的获取
        List<User> records = userPageData.getRecords();
        System.out.println(records);
        records.forEach(user -> System.out.println("user = " + user));


    }

— 文章完 —

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
将SSM框架中的MyBatis升级到MyBatis-Plus是可行的,可以实现共存。SSM框架由SpringSpring MVCMyBatis组成,而MyBatis-Plus是对MyBatis的增强扩展。下面将介绍如何将它们共存。 首先,需要将MyBatis升级到MyBatis-Plus。可以将MyBatis-Plus的依赖项添加到项目的pom.xml文件中,替换原有的MyBatis依赖。然后,需要对原有的MyBatis配置文件进行修改。MyBatis-Plus提供了一些方便的功能和特性,如自动填充、逻辑删除等,可以根据项目需求选择开启或关闭。 在SSM框架中,MyBatis-Plus可以与原有的Spring框架和Spring MVC框架完美共存。Spring框架负责管理和配置各种Bean,MyBatis-Plus可以与Spring框架一起使用,将其作为DAO层的组件进行管理。在Spring的配置文件中,可以将MyBatis-Plus的配置文件加入到配置中。 在Spring MVC框架中,可以继续使用原有的控制器、服务和视图解析器等组件。MyBatis-Plus可以与Spring MVC框架无缝集成,通过Spring MVC接收请求,然后调用MyBatis-Plus进行数据访问和处理。 在具体开发过程中,可以利用MyBatis-Plus提供的一些特性简化开发工作。例如,可以使用MyBatis-Plus的代码生成器来自动生成DAO、实体类和Mapper等代码,减少手动编写的工作量。 总结来说,将SSM框架中的MyBatis升级到MyBatis-Plus是完全可以实现的,它们可以共存并完美集成。通过使用MyBatis-Plus,我们可以更加便捷地开发和管理数据库操作,提高开发效率和代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值