MybtisPlus快速开发(从controller到mapper)

创建新项目

在这里插入图片描述

写好配置文件

server:
  port: 8905

#配置MP控制台打印日志
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

spring:
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3307/shequ-acl?characterEncoding=utf-8&useSSL=false
    username: root
    password: root

  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

使用mybatisX插件快速生成一张表的相关类

在这里插入图片描述

在这里插入图片描述

而后将生成好的文件夹剪切进创建好的目录中:

在这里插入图片描述

引入依赖:

        <!--   -web依赖引入以后才会有@RestController注解     -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--Lombok引入-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

启动类上加扫描注解:

@SpringBootApplication
@MapperScan("com.mybatistest.mybatistest.mapper")
public class MybatistestApplication {

    public static void main(String[] args) {
        SpringApplication.run(MybatistestApplication.class, args);
    }

}

写好Controller层

@RestController
@RequestMapping("mybatisPlus/test")
public class PermissionController {

    @Autowired
    PermissionService permissionService;

    @Autowired
    PermissionServiceSecond permissionServiceSecond;

    @GetMapping("/slectByNameSecond")
    public List<Permission> slectByNameSecond(@RequestParam String name){

        return permissionServiceSecond.slectByNameSecond(name);
    }
    @GetMapping("/slectByName")
    public List<Permission> queryByName(@RequestParam String name){

        return permissionService.queryByName(name);
    }
}

Mapper层

如果要在Service层注入mapper的话需要在mapper接口上加上@Repository注解

public interface PermissionMapper extends BaseMapper<Permission> {

}
@Repository
public interface PermissionMapperSecond extends BaseMapper<Permission> {

}

Service层

方式1:实现类不做继承

public interface PermissionService extends IService<Permission> {

    List<Permission> queryByName(String name);
}


@Service
public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permission>
    implements PermissionService{

    @Override
    public List<Permission> queryByName(String name) {
        Permission permission = new Permission();
        permission.setName(name);
        QueryWrapper<Permission> queryWrapper = new QueryWrapper<Permission>(permission);
        List<Permission> permissions = baseMapper.selectList(queryWrapper);
        return permissions;
    }
}

方式二:实现类继承ServiceImpl<xxMapper, xxEntity>

public interface PermissionServiceSecond extends IService<Permission> {

    List<Permission> slectByNameSecond(String name);
}

@Service
public class PermissionServiceSecondImpl implements PermissionServiceSecond {
    @Autowired
    PermissionMapperSecond permissionMapperSecond;
    @Override
    public List<Permission> slectByNameSecond(String name) {
            Permission permission = new Permission();
            permission.setName(name);
            QueryWrapper<Permission> queryWrapper = new QueryWrapper<Permission>(permission);
            List<Permission> permissions = permissionMapperSecond.selectList(queryWrapper);
            return permissions;
    }

    @Override
    public boolean saveBatch(Collection<Permission> entityList, int batchSize) {
        return false;
    }

    @Override
    public boolean saveOrUpdateBatch(Collection<Permission> entityList, int batchSize) {
        return false;
    }

    @Override
    public boolean updateBatchById(Collection<Permission> entityList, int batchSize) {
        return false;
    }

    @Override
    public boolean saveOrUpdate(Permission entity) {
        return false;
    }

    @Override
    public Permission getOne(Wrapper<Permission> queryWrapper, boolean throwEx) {
        return null;
    }

    @Override
    public Map<String, Object> getMap(Wrapper<Permission> queryWrapper) {
        return null;
    }

    @Override
    public <V> V getObj(Wrapper<Permission> queryWrapper, Function<? super Object, V> mapper) {
        return null;
    }

    @Override
    public BaseMapper<Permission> getBaseMapper() {
        return null;
    }

    @Override
    public Class<Permission> getEntityClass() {
        return null;
    }
}

执行结果

[
    {
        "code": "btn.User.add",
        "createTime": 1622455537000,
        "id": 7,
        "isDeleted": 0,
        "name": "添加",
        "pid": 3,
        "type": 2,
        "updateTime": 1622507669000
    },
    {
        "code": "btn.Role.add",
        "createTime": 1622455537000,
        "id": 12,
        "isDeleted": 0,
        "name": "添加",
        "pid": 4,
        "type": 2,
        "updateTime": 1622507768000
    },
    {
        "code": "btn.Permission.add",
        "createTime": 1622455537000,
        "id": 16,
        "isDeleted": 0,
        "name": "添加",
        "pid": 5,
        "type": 2,
        "updateTime": 1622507859000
    },
    {
        "code": "btn.AttrGroup.add",
        "createTime": 1624006384000,
        "id": 28,
        "isDeleted": 0,
        "name": "添加",
        "pid": 27,
        "toCode": "AttrGroupAdd",
        "type": 2,
        "updateTime": 1624006445000
    },
    {
        "createTime": 1624006770000,
        "id": 34,
        "isDeleted": 0,
        "name": "添加",
        "pid": 33,
        "toCode": "SkuInfoAdd",
        "type": 2,
        "updateTime": 1624006874000
    },
    {
        "code": "",
        "createTime": 1624007141000,
        "id": 38,
        "isDeleted": 0,
        "name": "添加",
        "pid": 37,
        "toCode": "ActivityInfoAdd",
        "type": 2,
        "updateTime": 1624007173000
    },
    {
        "createTime": 1624007217000,
        "id": 41,
        "isDeleted": 0,
        "name": "添加",
        "pid": 40,
        "toCode": "CouponInfoAdd",
        "type": 2,
        "updateTime": 1624007242000
    }
]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/204763.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot月度员工绩效考核管理系统

摘 要 科学时代的发展改变了人类的生活&#xff0c;促使网络与计算机技术深入人类的各个角落&#xff0c;得以普及到人类的具体生活中&#xff0c;为人类的时代文明掀开新的篇章。本系统为月度员工绩效考核管理系统&#xff0c;是专为企业开发的对员工考核的协助软件。可以帮助…

4.7-容器网络之host和none

这一节我们来看一下docker中的另外两种网络&#xff0c;host和none。 docker network inspect none 于是就看到Containers, 里面包含了一个test1 表示这个容器连接到了none。

职业测评链接

职业测评链接&#xff1a; https://www.16personalities.com/ch?utm_sourceresults-turbulent-campaigner&amp%3Butm_mediumemail&amp%3Butm_campaignch&amp%3Butm_contentlogo-0

【Linux】:信号(一)产生

信号 一.前台进程和后台进程1.前台进程2。后台进程3.总结 二.自定义信号动作接口三.信号的产生1.键盘组合键2.kill信号进程pid3.系统调用1.kill函数2.raise函数3.abort函数 四.异常五.软件条件六.core文件 一.前台进程和后台进程 1.前台进程 一个简单的代码演示 像这种程序在…

2024 本田 CBR1000RR-R Fireblade SP

本田在米兰车展期间也发布了自家的旗舰仿赛&#xff0c;虽然不是重大改款&#xff0c;只是更新一些内容&#xff0c;性能方面有所小提升&#xff0c;但是毕竟人家是本田&#xff0c;毕竟人家是火刃&#xff0c;还是要尊重一下&#xff0c;写一篇内容的。 新款还是有一些亮点&am…

SPI学习

SPI介绍 SPI&#xff1a;串行外设设备接口&#xff08;Serial Peripheral Interface&#xff09;&#xff0c;是一种高速的&#xff0c;全双工&#xff0c;同步通信总线。 全双工&#xff1a;同一时刻&#xff0c;能同时接收数据和发送数据。 半双工&#xff1a;同一时刻&am…

子类出现和父类同名的成员,子类如何访问父类的同名成员?

一. 子类访问子类同名的成员&#xff0c;直接访问即可。 #include <iostream> using namespace std;class Base { public:Base(int age 0) : m_age(age) {}int get_age() {return m_age;}static int get_counter() {return ms_counter;}int m_age;static int ms_counte…

C语言——指针(三)

&#x1f4dd;前言&#xff1a; 上篇文章C语言——指针&#xff08;二&#xff09;中对&#xff1a;指针的运算和指针变量类型对指针使用的影响开展了进一步的探讨&#xff0c;这篇文章我们继续学习一下指针与一维数组之间的关系&#xff1a; 1&#xff0c;对数组名的理解 2&am…

electron调用dll问题总汇

通过一天的调试安装&#xff0c;electron调用dll成功&#xff0c;先列出当前的环境&#xff1a;node版本: 18.12.0&#xff0c;32位的&#xff08;因为dll为32位的&#xff09; VS2019 python node-gyp 1、首先要查看报错原因&#xff0c;通常在某一行会有提示&#xff0c;常…

CCF CSP认证 历年题目自练Day50

题目 试题编号&#xff1a; 201809-3 试题名称&#xff1a; 元素选择器 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 256.0MB 问题描述&#xff1a; 题目分析&#xff08;个人理解&#xff09; 还是先理解题意&#xff0c;关于html的部分&#xff0c;可以按照样例画出…

如何使用MES管理系统管理与统计员工绩效

MES管理系统解决方案在生产流程优化中发挥着至关重要的作用&#xff0c;特别是在员工绩效的统计与管理方面。本文深入探讨了MES管理系统如何通过多种方式&#xff0c;包括实时数据采集、生产过程可视化、以及绩效指标设定与评估&#xff0c;以更精准、全面的方式统计员工绩效&a…

C盘爆红 教你如何快速释放空间

目录 问题描述&#xff1a; C盘爆红 快速清理空间&#xff1a; 1.找到设置 2.选择系统 3.打开存储 4.进入清理建议 5.选择以前的Windows安装文件 6.点击清理 7.至此清理完成 问题描述&#xff1a; C盘爆红 快速清理空间&#xff1a; 1.找到设置 2.选择系统 3.打开存储 4.进入清…

JRT和检验共用的打印层实现

之前对接的打印和导出是C#实现的&#xff0c;如果要完全Java化就需要用Java把打印元素绘制协议用Java实现&#xff0c;这次介绍实现主体搭建&#xff0c;最终使JRT达到完全信创和跨平台目标。到这篇后&#xff0c;所有的Java难题都解决完毕&#xff0c;几天到几周之内就可以把打…

C++-多态常见试题的总结

关于C多态的介绍&#xff1a;C-多态-CSDN博客 1. A.只有类的成员方法才可以被virtual修饰&#xff0c;其他的函数并不可以 B.正确 C.virtual关键字只在声明时加上&#xff0c;在类外实现时不能加 D.static和virtual是不能同时使用的 2. A.多态分为编译时多态和运行时多态&…

算法通关村第十三关-白银挑战数字与数学高频问题

大家好我是苏麟 , 今天带来数字与数学的高频问题 . 加一 描述 : 给定一个由 整数 组成的 非空 数组所表示的非负整数&#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外&#xff0c;这个…

ElementPlusError: [ElPagination] 你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档

使用element table出现这个错误好几回了&#xff0c;今天把它记录一下&#xff0c;并把错误原因复盘一遍。具体如下&#xff1a; 错误截图 原因 其实这个错误挺迷的&#xff0c;我把各种情况都测试了一遍&#xff0c;最后发现是因为给 翻页参数 total 传值错误导致的。 总结…

.net-去重的几种情况

文章目录 前言1. int 类型的list 去重2. string类型的 list 去重3. T泛型 List去重4. 使用HashSet List去重5. 创建静态扩展方法 总结 前言 .net 去重的几种情况 1. int 类型的list 去重 // List<int> List<int> myList new List<int>(){ 100 , 200 ,100…

基于SSM的影视创作论坛设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

element ui 表格合计项合并

如图所示&#xff1a; 代码&#xff1a; <el-table height"400px" :data"tableData " borderstyle"width: 100%"stripe show-summaryref"table"id"table"> </el-table>监听表格 watch: { //监听table这个对象…

虚拟数字人有什么用?有哪些应用场景?

​​过去三年&#xff0c;元宇宙概念进入到大众视野&#xff0c;虚拟数字人备受关注。抖音达人柳夜熙、洛天依、网红虚拟偶像AYAYI等&#xff0c;随着元宇宙的流行&#xff0c;数字人也逐渐成为一种趋势。据行业预测&#xff0c;到2030年&#xff0c;中国的数字人总市场规模将达…