基于Spring+SpringMVC+MyBatis开发书评网MyBatis-Plus的整合

Posted 被雨遗忘的夏天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Spring+SpringMVC+MyBatis开发书评网MyBatis-Plus的整合相关的知识,希望对你有一定的参考价值。

一、 前提

1、 概要

项目整合使用国产框架MyBatis-Plus

 

2、 定义

基于 MyBatis 的敏捷开发插件,即增强工具

 

3、 作用

快速完成对应数据表的增删改查,提高开发效率

 

4、 MyBatis-Plus开发三部曲(第三步展开说)

1) 创建实体类, @TableName/@TableField/@TableId 实现映射

2) 创建 Mapper 接口继承 BaseMapper,创建 Mapper XML

3) 开发时注入 Mapper对象,通过内置的API实现CRUD操作

 

二、 原有基础上修改配置(原有点这里

1、 引入相关依赖

<!-- 四、 整合MyBatis-Plus 框架-->
        <!-- 定义:基于mybatis的敏捷开发的插件,增强工具 -->
        <!-- 作用:快速完成对应数据表的增删改查 -->
        <!-- 4.1 引入mybatis-plus依赖 -->
        <!-- MyBatis-Plus依赖 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>3.3.2</version>
        </dependency>

 

2、 Spring XML更改配置SqlSessionFactory

<!-- 2.3 配置SqlSessionFactory -->
    <!-- SqlSessionFactoryBean用于根据配置信息创建SqlSessionFactory,不再需要我们自己编码创建 -->
    <!-- 原生Mybaits与Spring整合 -->
    <!--<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">-->
    <!-- 4.2 Spring XML更改配置SqlSessionFactory -->
    <bean id="sessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
        <!-- 设置数据源 指向前面创建的dataSource -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 存储sql语句的文件 -->
        <property name="mapperLocations" value="classpath:mappers/*.xml"/>
        <!-- 2.5 MyBatis配置文件地址 -->
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
    </bean>

 

3、 配置MyBatis-Plus分页拦截器插件

<plugins>
        <!-- 4.3 配置MyBatis-Plus分页拦截器插件 -->
        <!-- 自动地对sql语句进行解析,生成我们需要的分页sql -->
        <plugin interceptor="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor"></plugin>
    </plugins>

 

三、 整合测试

1、 创建/配置实体类

package com.imooc.reader.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

/**
 * @ClassName Test
 * @Description 实体类
 * @date 2021/5/8 8:46
 * @Param
 * @return
 */

// 说明实体对应哪一张表
@TableName("test")
public class Test {
    // 声明表的主键,type:主键生成方式
    @TableId(type = IdType.AUTO)
    // 说明属性对应哪个字段
    @TableField("id")
    private Integer id;

    // 如果字段名与属性名相同或者符合驼峰命名转换规则,则TableField可省略
    // 1. 字段名与属性名相同: content
    // 2. 符合驼峰命名转换规则: abc_abc   abcAbc
    @TableField("content")
    private String content;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}

 

2、 修改已有的Mapper接口

package com.imooc.reader.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.imooc.reader.entity.Test;

/**
 * @ClassName TestMapper
 * @Description TestMapper接口
 * @date 2021/5/7 17:07
 * @Param
 * @return
 */
// BaseMapper核心父接口,内有增删改查的方法
public interface TestMapper extends BaseMapper<Test> {
    // 自定义方法
    public void insertSample();
}

 

3、 创建测试用例类

package com.imooc.reader.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.imooc.reader.entity.Test;
import com.imooc.reader.mapper.TestMapper;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;
import java.util.List;

/**
 * @ClassName MyBatisPlusTest
 * @Description MyBatisPlus测试用例
 * @date 2021/5/8 9:03
 * @Param
 * @return
 */
// 初始化IOC容器
@RunWith(SpringJUnit4ClassRunner.class)
// 指向要加载的配置文件
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
public class MyBatisPlusTest {

    // 注入配置好的接口
    @Resource
    private TestMapper testMapper;

    // 增加测试
    @org.junit.Test
    public void testInsert() {
        Test test = new Test();
        test.setContent("MyBatis Plus增加测试");
        testMapper.insert(test);
    }

    // 更新测试
    @org.junit.Test
    public void testUpdate() {
        Test test = testMapper.selectById(9);
        test.setContent("MyBatis Plus更新测试");
        testMapper.updateById(test);
    }

    // 删除测试
    @org.junit.Test
    public void testDelete() {
        testMapper.deleteById(9);
    }

    // 查找测试
    @org.junit.Test
    public void testSelect() {
        QueryWrapper<Test> queryWrapper = new QueryWrapper<Test>();
        queryWrapper.eq("id", 7);
        queryWrapper.gt("id", 5);
        List<Test> list = testMapper.selectList(queryWrapper);
        System.out.println(list.get(0));
    }
}

 

以上是关于基于Spring+SpringMVC+MyBatis开发书评网MyBatis-Plus的整合的主要内容,如果未能解决你的问题,请参考以下文章

spring与mybati整合方法

自己开发的音乐视频网站

Spring Boot整合Mybati之逆向工程

抽奖活动啦!5本SpringMVC+MyBatis相关3本Android Studio相关6本Kafka相关

spring+mybati java config配置引起的bean相互引用日志报警告问题

Spring基于注解及SpringMVC