MybtisPlus快速开发(从controller到mapper)

创建新项目

在这里插入图片描述

写好配置文件

server:port: 8905#配置MP控制台打印日志
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplspring:datasource:type: com.zaxxer.hikari.HikariDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3307/shequ-acl?characterEncoding=utf-8&useSSL=falseusername: rootpassword: rootjackson:date-format: yyyy-MM-dd HH:mm:sstime-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 {@AutowiredPermissionService permissionService;@AutowiredPermissionServiceSecond 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{@Overridepublic 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 {@AutowiredPermissionMapperSecond permissionMapperSecond;@Overridepublic 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;}@Overridepublic boolean saveBatch(Collection<Permission> entityList, int batchSize) {return false;}@Overridepublic boolean saveOrUpdateBatch(Collection<Permission> entityList, int batchSize) {return false;}@Overridepublic boolean updateBatchById(Collection<Permission> entityList, int batchSize) {return false;}@Overridepublic boolean saveOrUpdate(Permission entity) {return false;}@Overridepublic Permission getOne(Wrapper<Permission> queryWrapper, boolean throwEx) {return null;}@Overridepublic Map<String, Object> getMap(Wrapper<Permission> queryWrapper) {return null;}@Overridepublic <V> V getObj(Wrapper<Permission> queryWrapper, Function<? super Object, V> mapper) {return null;}@Overridepublic BaseMapper<Permission> getBaseMapper() {return null;}@Overridepublic 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}
]

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

联想M7400W激光打印机加粉清零方法

基本参数 产品定位&#xff1a;多功能商用一体机 产品类型&#xff1a;黑白激光多功能一体机 涵盖功能&#xff1a;打印、复印、扫描 最大处理幅面&#xff1a;A4 耗材类型&#xff1a;鼓粉分离 耗材容量&#xff1a;硒鼓LD2451 12000页&#xff0c;墨粉LT2451 1500页、L…

每日一练2023.11.30——谁先倒【PTA】

题目链接&#xff1a;谁先倒 题目要求&#xff1a; 划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为&#xff1a;每人口中喊出一个数字&#xff0c;同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和&#xff0c;谁就输了&#xff0…

PyCharm安装教程(详细步骤)

一、软件简介 PyCharm是一款Python IDE&#xff0c;其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具&#xff0c;比如&#xff0c; 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等等。此外&#xff0c;该IDE提供了一些高…

在Linux上搭建JavaWeb项目运行环境

文章目录 安装JDK安装Tomcat安装数据库 安装JDK 安装Oracle官方的JDK比较麻烦&#xff0c;我们在此处选择安装开源社区维护的openjdk。他们俩的差别不大且兼容。 安装Tomcat 我们把本地下载好的 tomcat.zip 包拖到Linux页面上&#xff0c;让Linux也有一个zip包&#xff0c;再…

Python 计算图像差分的三种方式(cv2,torchvision,numpy)

前言&#xff1a;最近在可视化图像残差时&#xff0c;发现几种不同的差分方法&#xff0c;下面分别给出每种差分方法的实现方式&#xff0c;并比较不同方法之间的差异。 目录 1️⃣ cv22️⃣ PIL & torchvision3️⃣ PIL & numpy 目标&#xff1a;对于给定的下述两张图…

MacOS + Android Studio 通过 USB 数据线真机调试

环境&#xff1a;Apple M1 MacOS Sonoma 14.1.1 软件&#xff1a;Android Studio Giraffe | 2022.3.1 Patch 3 设备&#xff1a;小米10 Android 13 一、创建测试项目 安卓 HelloWorld 项目: 安卓 HelloWorld 项目 二、数据线连接手机 1. 手机开启开发者模式 参考&#xff1…

代码随想录算法训练营第四十八天【动态规划part09】 | 198.打家劫舍、213.打家劫舍II、337.打家劫舍III

198.打家劫舍 题目链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 求解思路&#xff1a; 当前房屋偷与不偷取决于前一个房屋是否被偷了 动规五部曲 确定dp数组及其下标含义&#xff1a;考虑下标i&#xff08;包括i&#xff09…

Qt串口助手

QT5 串口助手 ​ 由于C课程作业的需要&#xff0c;用QT5写了个简陋的串口助手。只作为一个简单的案例以供参考&#xff0c;默认读者具有C基础和了解简单的Qt操作。 功能展示 【用QT写了个简单的串口助手】 准备工作 Qt自带有<QSerialPort> 库, 可以方便地配置和调用…

lv11 嵌入式开发 轮询与中断13

1 CPU与硬件的交互方式 轮询 CPU执行程序时不断地询问硬件是否需要其服务&#xff0c;若需要则给予其服务&#xff0c;若不需要一段时间后再次询问&#xff0c;周而复始 中断 CPU执行程序时若硬件需要其服务&#xff0c;对应的硬件给CPU发送中断信号&#xff0c;CPU接收到中…

python爬取robomaster论坛数据,作为后端数据

一. 内容简介 python爬取robomaster论坛数据&#xff0c;作为后端数据 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3代码 三.主要流程 3.1 接口分析 # 接口分析 # 全部数据 # https://bbs.robomaster.com/forum.php?modforumdisplay&fid63 2…

Ubuntu systemd-analyze命令(系统启动性能分析工具:分析系统启动时间,找出可能导致启动缓慢的原因)

文章目录 Ubuntu systemd-analyze命令剖析目录简介systemd与systemd-analyze工作原理 安装和使用命令参数详解用例与示例显示启动时间&#xff08;systemd-analyze time&#xff09;列出启动过程中各个服务的启动时间&#xff08;systemd-analyze blame&#xff09;显示系统启动…

使用opencv实现图像滤波

1 图像滤波介绍 滤波是信号和图像处理中的基本任务之一&#xff0c;其旨在有选择地提取图像的某些特征&#xff0c;可以用于在给定应用程序的上下文中传达重要信息&#xff0c;例如&#xff0c;去除图像中的噪声、提取所需的视觉特征、图像重采样等。 1.1 图像滤波理论 图像…

厦门城市建设与建筑结构健康监测系统的重要性与作用

厦门&#xff0c;这座美丽的海滨城市&#xff0c;随着经济的快速发展和城市化的不断推进&#xff0c;城市建设已成为人们关注的焦点。其中&#xff0c;建筑结构健康监测系统对于保障城市建设和建筑的安全具有举足轻重的地位。 WITBEE万宾针对建筑的动态平衡&#xff0c;温湿度&…

shell编程系列(7)-使用wc进行文本统计

文章目录 前言wc命令的使用wc命令的参数说明&#xff1a;统计字数统计行数打印文本行号 结语 前言 统计功能也是我们在shell编程中经常碰到的一个需求&#xff0c;wc命令可以适用于任何需要统计的数据&#xff0c;不只是统计文本&#xff0c;配合ls命令我们可以统计文件的个数…

java gc垃圾回收机制(垃圾收集 Garbage Collection)

一文带你深入JAVA GC&#xff08;垃圾回收机制&#xff09;面试讲解&#xff01;&#xff01;&#xff01; - 知乎 gc常用算法 gc常用算法有&#xff1a;标记-清除算法&#xff0c;标记-压缩算法&#xff0c;复制算法&#xff0c;分代收集算法。 复制算法&#xff08;Java中…

java--子类构造器的特点

1.子类构造器的特点 子类的全部构造器&#xff0c;都会先调用父类的构造器&#xff0c;再执行自己。 2.子类构造器是如何实现调用父类构造器的 ①默认情况下&#xff0c;子类全部构造器的第一行代码都是super()(写不写都有)&#xff0c;它会调用父类的无参数构造器。 ②如果…

【攻防世界-misc】来自银河的信号

1.下载并打开文件&#xff0c;是个音频软件 2.由于打开音频出现的声音类似于无线波&#xff0c;因此需要用RX-SSTV工具打开&#xff0c; RX-SSTV代表“接收图像慢扫描电视”的意思。慢扫描电视是一种通过无线电进行图像传输的技术&#xff0c;通常用于业余无线电领域。RX-SST…

分治法之归并排序

思路: 将待排序数组分成两个子数组&#xff0c;计算中间位置mid。对左半部分进行递归排序&#xff0c;得到一个有序的子数组。对右半部分进行递归排序&#xff0c;得到另一个有序的子数组。合并两个有序的子数组&#xff0c;得到一个完整的有序数组。 示例图: 代码: #include&…

JAVA 算法面试总结

1、二分查找 二分查找又叫折半查找&#xff0c;要求待查找的序列有序。每次取中间位置的值与待查关键字比较&#xff0c;如果中间位置 的值比待查关键字大&#xff0c;则在前半部分循环这个查找的过程&#xff0c;如果中间位置的值比待查关键字小&#xff0c; 则在后半部分循环…

【ONE·Linux || 网络基础(四)】

总言 主要内容&#xff1a;传输层UDP、TCP协议基本介绍。UDP报文格式、TCP报文格式、三次握手四次挥手、TCP可靠性策略说明。 文章目录 总言8、UDP协议&#xff08;传输层一&#xff09;8.1、传输层预备知识8.1.1、端口号8.1.2、一些指令&#xff08;netstat、pidof、xargs&am…