使用Mybatis实现CURD后,新增几张表用MybatisPlus实现CURD

Posted 夜中听雪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Mybatis实现CURD后,新增几张表用MybatisPlus实现CURD相关的知识,希望对你有一定的参考价值。

文章目录

环境

IDEA+SpringBoot+Maven+mysql

原先有user表,使用Mybatis对该表CURD

使用Mybatis时,application.properties

# MybatisProperties
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.demo.entity
mybatis.configuration.useGeneratedKeys=true
mybatis.configuration.mapUnderscoreToCamelCase=true

src\\main\\resources\\mapper下有user-mapper.xml
src\\main\\java\\com\\example\\demo\\dao下有UserMapper.java
可以在xml文件里写sql语句实现对user表的CURD。

新增rank_follower表,使用MybatisPlus对该表CURD

偷懒小技巧:
1、利用idea快速生成实体类-百度经验
2、【狂神说Java】MyBatisPlus最新完整教程通俗易懂_哔哩哔哩_bilibili

IDEA连接数据库时:
报错:Server returns invalid timezone. Need to set ‘serverTimezone’ property.
解决:点开最右侧 Advanced,找到 serverTimezone,在右侧value处填写 GMT,保存即可!(或填写 Asia/Shanghai)

数据库里新增表rank_follower,IDEA里新增实体类RankFollower

pom.xml

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>

RankFollowerMapper.java

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.RankFollower;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

@Repository
@Mapper
public interface RankFollowerMapper extends BaseMapper<RankFollower> 

RankService.java

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.demo.dao.*;
import com.example.demo.entity.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class RankService 

    @Autowired
    private RankFollowerMapper rankFollowerMapper;

    public List<RankFollower> selectRankFollowers(int offset, int limit) 
    //        return rankFollowerMapper.selectList(null);
        return rankFollowerMapper.selectList(new QueryWrapper<RankFollower>().between("id",offset,offset+limit-1));
    

报错与解决

报错

此时,使用MybatisPlus进行CURD的表可以CURD,使用Mybatis进行CURD的表无法CURD,报错如下:

1、未在application.properties里配置mybatis-plus.mapper-locations,报该错:

# IDEA里点击运行后不报错,走到执行`selectByName`方法时才报该错误
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.demo.dao.UserMapper.selectByName

2、在application.properties里配置了mybatis-plus.mapper-locations,但未在application.properties里配置mybatis-plus.type-aliases-package,报该错:

# IDEA里点击运行后就报该错
# bean没有办法获取正确路径的报错,这个报错只会出现在java web spring框架运行的时候,由于这个报错并不会在eclipse内显示,只有运行的时候才会出现
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userService': Unsatisfied dependency expressed through field 'userMapper';

解决

application.properties,注释掉Mybatis的配置,写上MybatisPlus的配置,如下:

# MybatisProperties
#mybatis.mapper-locations=classpath:mapper/*.xml
#mybatis.type-aliases-package=com.example.demo.entity
#mybatis.configuration.useGeneratedKeys=true
#mybatis.configuration.mapUnderscoreToCamelCase=true

# MybatisPlusProperties
mybatis-plus.mapper-locations=classpath:mapper/*.xml
mybatis-plus.type-aliases-package=com.example.demo.entity
mybatis-plus.configuration.use-generated-keys=true
mybatis-plus.configuration.map-underscore-to-camel-case=true

此时,使用MybatisPlus进行CURD的表可以CURD,使用Mybatis进行CURD的表可以CURD。

以上是关于使用Mybatis实现CURD后,新增几张表用MybatisPlus实现CURD的主要内容,如果未能解决你的问题,请参考以下文章

关于mybatis的基础(简单的实现CURD功能)

MyBatis-Plus实现数据库curd操作

Mybatis基础Dao代理实现CURD操作

MyBatis-Plus实现数据库curd操作

ssm搭建简单web项目实现CURD

oracle查询一个数据库有几张表