当前位置: 首页 > news >正文

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}
]

相关文章:

  • 第二十章总结。。。
  • centos 安装谷歌浏览器
  • WordPress 只允许游客浏览指定分类的文章
  • 技术前沿丨Teranode如何实现无限扩容
  • Docker安装可视化工具Portainer
  • 如何在VS2022上的MFC项目中操作Excel(VS2010、VS2012、VS2015、VS2017、VS2019使用方法一样)
  • vue运用之el-cascader组件
  • Python语言学习笔记之五(Python代码注解)
  • 【开源视频联动物联网平台】开箱即用的物联网项目介绍
  • Apipost推出IDEA插件,代码写完直接调试
  • Python与设计模式--建造者模式
  • 【电路笔记】-电阻串联
  • 【Linux】驱动程序同步和异步通知方式
  • 【开源】基于JAVA的天然气工程运维系统
  • vuepress-----3、导航栏
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • co模块的前端实现
  • DOM的那些事
  • ES6简单总结(搭配简单的讲解和小案例)
  • input实现文字超出省略号功能
  • java8-模拟hadoop
  • Java基本数据类型之Number
  • Laravel 中的一个后期静态绑定
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • Spring核心 Bean的高级装配
  • WebSocket使用
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 推荐一个React的管理后台框架
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 用简单代码看卷积组块发展
  • 06-01 点餐小程序前台界面搭建
  • 《天龙八部3D》Unity技术方案揭秘
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #数学建模# 线性规划问题的Matlab求解
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (pojstep1.1.2)2654(直叙式模拟)
  • (多级缓存)多级缓存
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (一)基于IDEA的JAVA基础10
  • (译)2019年前端性能优化清单 — 下篇
  • (转)ObjectiveC 深浅拷贝学习
  • *上位机的定义
  • .NET CORE Aws S3 使用
  • .NET 服务 ServiceController
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .net中我喜欢的两种验证码
  • .Net转前端开发-启航篇,如何定制博客园主题
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @property @synthesize @dynamic 及相关属性作用探究
  • [].shift.call( arguments ) 和 [].slice.call( arguments )
  • [C#] 我的log4net使用手册
  • [C++随笔录] 红黑树
  • [ccc3.0][数字钥匙] UWB配置和使用(二)