基于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的整合的主要内容,如果未能解决你的问题,请参考以下文章
抽奖活动啦!5本SpringMVC+MyBatis相关3本Android Studio相关6本Kafka相关