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.hqwc.cn/news/234461.html

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

相关文章

行情分析——加密货币市场大盘走势(11.30)

大饼已经形成了底背离&#xff0c;即MACD往下走&#xff0c;而价格还在往上走&#xff0c;这种往往后续会大跌。我们继续把空单拿好&#xff0c;已经持仓的无需加仓。多次上涨都一直不能突破&#xff0c;也说明多空和空军力量都很强&#xff0c;等待后续出方向&#xff0c;而笔…

四大排序方法(java版)

四大排序方法 &#x1f4d1;前言 本文主要是【算法】——常用的排序方法的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#x1f3…

Vue快速实践总结 · 下篇

文章目录 组件间通信方式父 --> 子通信props插槽 子 --> 父通信&#xff08;自定义事件&#xff09;任意组件通信全局事件总线消息订阅与发布 Vuex工作原理运行环境简单使用GettersmapState与mapGettersmapActions与mapMutations模块化 命名空间 VueRouter路由的作用与分…

编写算法,对n个关键字取整数值的记录序列进行整理。以使所有关键字为负值的记录排在关键字为非负值的记录之前

编写算法&#xff0c;对n个关键字取整数值的记录序列进行整理。以使所有关键字为负值的记录排在关键字为非负值的记录之前&#xff0c;要求&#xff1a; &#xff08;1&#xff09;采用顺序存储结构&#xff0c;至少使用一个记录的辅助存储空间 &#xff08;2&#xff09;算法的…

自动驾驶DCLC 功能规范

目录 1 概述Summary....................................................................................................... 4 1.1 目的Purpose....................................................................................................... 4 1.2 范围Ran…

mysql迁移到sqlserver数据库,真的超级简单

这是微软官方步骤 需要注意的地方在连接mysql时&#xff0c;如果没有驱动&#xff0c; 那记得更换SSMAforMySQL X86的版本 工具下载地址&#xff08;点击download后会弹出选项的&#xff09;&#xff1a;Download Microsoft SQL Server Migration Assistant for MySQL from Of…

数字孪生3D场景开发工具:弥补不足,开拓全新可能

随着数字化时代的来临&#xff0c;越来越多的企业和行业开始探索数字孪生技术的应用。数字孪生是指通过数字技术将现实世界中的物体、场景等复制到虚拟世界中&#xff0c;以实现实时监测、预测和优化。然而&#xff0c;在数字孪生的发展过程中&#xff0c;一些不足也逐渐浮现。…

web前端tips:js继承——寄生组合式继承

上篇文章给大家分享了 js继承中的 寄生式继承 web前端tips&#xff1a;js继承——寄生式继承 今天给大家分享一下 js 继承中的 寄生组合式继承 寄生组合式继承 寄生组合式继承是一种结合了寄生式继承和组合式继承的方式&#xff0c;它的目标是减少组合式继承中多余的调用父…

【ArcGIS Pro二次开发】(78):批量合并GDB数据库

有些GDB数据库会按分幅或行政区划进行分开储存&#xff0c;尤其是一些地形测绘或国情地理数据。 如下图所示&#xff1a; 数据是完整的&#xff0c;但使用的时候要一个一个拖进地图中&#xff0c;进行分析的时候也需要将其合并后使用。 因此就做了这个合库工具。 一、要实现的…

Peter算法小课堂—高精度乘法

给大家看个小视频13 高精度算法 乘法_哔哩哔哩_bilibili 乘法竖式 大家觉得Plan A好&#xff0c;还是Plan B好呢&#xff08;对于计算机来说&#xff09;&#xff1f;那显然是B啦 x*y问题 mul思路&#xff1a;mul()函数返回x数组乘y数组的积&#xff0c;保存在z数组。根据上…

聚焦清晰度评价指标所用到的各种算法

首先&#xff0c;我想吐槽一下&#xff0c;看了好几篇聚焦评价函数的文章&#xff0c;说到底都是一篇文章转载或者重复上传&#xff0c;介绍了将近 15 种清晰度的算法&#xff0c;原文找了半天都没找到在哪&#xff0c;最多也仅能找到一些比较早的转载。 无参考图像的清晰度评…

学习笔记小结

redis-cluster集群 redis3.0引入的分布式存储方案 集群由多个node节点组成&#xff0c;redis数据分布在这些节点当中。 在集群之中分为主节点和从节点 集群模式当中&#xff0c;主从一一对应&#xff0c;数据的写入和读取与主从模式一样&#xff0c;主负责写&#xff0c;从…