使用mybatis实现curd后,新增几张表用mybatisplus实现curd(代码片段)

夜中听雪 夜中听雪     2022-11-30     724

关键词:

文章目录

环境

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-plus实现数据库curd操作(代码片段)

...物理删除和逻辑删除逻辑删除6、条件构造器和常用接口MyBatis-Plus实现数据库curd操作mp是什么MyBatis-Plus(简称MP)是一个MyBatis的 查看详情

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

登录sys用户后通过user_tables表查看当前用户下表的张数。sql:conn/assysdba;sql:selectcount(*)fromuser_tables;解释:必须是登录到系统的超级用户后后,通过上面sql读取出”用户表“中记录的行数(每个表会有一条记录),即为当前数... 查看详情

lambdaquerywrapper&querywrapper增删改curd使用教程案例

...没有好好地历练过怎么样开发一个应用程序,SpringBoot没使用过,​​Mybatis​​还是老套的xml配置化,真让我无语至极,不懂的现在SPringBoot里面的JPa可以注解实现SQL的增删改查,也不知道针对单表查询现在实际项目开发过程中根... 查看详情

mybatis新增对象自动生成uuid方案

mybatis新增对象时,使用拦截器自动生成uuid方案有了它不再去xml中手动添加selectKey了,生成id方案实现类自行实现,实现IdGenerator接口便可,主要代码由公司同事编写,我进行改造使用时可以在id字段上添加@Id注解,也可以在getId方法上添... 查看详情

mybatis--curd操作

mybatis基本的增删查改操作1.编写session工具类packagecom.utils;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis 查看详情

MYSQL Concat 几行并连接几张表

】MYSQLConcat几行并连接几张表【英文标题】:MYSQLConcatseveralrowsandjoinseveraltables【发布时间】:2017-08-0112:02:48【问题描述】:我有以下表结构:tMasterCityClientIdProductId-------------------------------------11111N211223NNNtCityCityIdCityName------------ 查看详情

mybatis高级注解开发

常用注解介绍我们除了可以使用映射配置文件来操作以外,还可以使用注解形式来操作常用注解@Select(”查询的SQL语句“):执行查询操作注解@Insert(”新增的SQL语句“):执行新增操作注解@Update(”修改的SQL语句“):执行... 查看详情

将几张表乘以大一张

】将几张表乘以大一张【英文标题】:multiplyseveraltablesinbigone【发布时间】:2015-11-0308:58:07【问题描述】:有一个关于sql的任务。我有树表表_1IdName1Name12Name2表_2IdName3Name34Name4决赛桌表_3IdTable1_IdTable2_IdValue113SomeText214Someanothertext所... 查看详情

mybatis—案例(代码片段)

...创建测试类基本CURD的操作MyBatis内部对象分析创建工具类使用工具类使用Dao对象快速开始一个MyBatis实现步骤:创建student表(id,name,email,age)新建maven项目修改pom.xml1)加入依赖mybatis依赖,mysq|驱动ÿ 查看详情

mybatis-plus自controller开始一键生成curd代码(代码片段)

...成employee表对应的CURD为例生成的文件controller里面长这样使用方式第一步:引入下方的给出的相关依赖第二步:将下方的单元测试类直接贴进去第三步:运行单元测试即可注:本人测试用的是junit5,如果用的是j... 查看详情

mysql备份数据库时怎样只备份一个数据库中的其中几张表的数据,覆盖时只覆盖这几张表的内容

mysqldump-u-p--tables--tables后面个表名称就是要单独备份恢复就是和正常恢复一样就行了参考技术Aphpmyadmin中点要导出的表然后选导出就可以了 查看详情

mybatis表对象继承实现

    Mybatis表对象继承       我们一般用表来表现对象之间的继承关系时通常有三种方式。第一种是把所有对象包含的属性都存放在一张表中,然后用一个字段来区分当前记录对应的对象类型;第二种是每个子类型一... 查看详情

052医疗项目-模块五:权限设置-实现根据用户显示不同的菜单

...等显示的左侧菜单都是一样的。我们在这篇文章里面就要实现不同的用户登录时显示的菜单是不同的.  我们先介绍数据库中的那几张表:那几张表和第三方系统有关。       这几张表对应的是 ... 查看详情

05-curd(代码片段)

<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="xxx"><insertid="insertSt 查看详情

mybatis注解开发

...询  @Result:实现结果集封装  @Results:可以与@Result一起使用,封装多个结果集  @ResultMap:实现引用@Results定义的封装  @One:实现一对一结果集封装  @Many:实现一对多结果集封装  @SelectProvid 查看详情

d2admin基本使用

...基于Vue.js和ElementUI的表格组件,封装了常用的表格操作,使用该组件可以快速在页面上处理表格数据。详见官方文档此处为带有新增和分页功能的表格,但CURD2.x中分页功能的数据需要从后台获取,因此这里只简单演示了表格的... 查看详情

还在写curd?试试这款基于mybatis-plus的springboot代码生成器(代码片段)

...oGenerator代码生成器+定制代码模板的springboot代码生成器。使用这个生成器你可以在1分钟之内生成数据库表 查看详情

sqlserver2005如何将一个数据库中的几张表,引入到另一个数据库中。

...【远程连接】选择【本地连接和远程连接】,选择【同时使用tcp/ip和namedpipes】。这个默认是不启用的。 参考技术B1.使用数据库导入导出向导.将数据表导入到另外一个数据库中2在另外一个数据库中使用跨库连接的方式直接范围... 查看详情