ruoyi-plus-server(一):引入Mybatis-Plus
背景:著名开源管理系统ruoyi-vue是基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统(https://gitee.com/y_project/RuoYi-Vue)
需求:站在巨人的肩膀上打造一个更符合自己使用习惯的管理系统
源码:https://gitee.com/baohaipeng/ruoyi-plus-server
方法:
一、下载资源,项目跑起来
1、下载地址:https://gitee.com/y_project/RuoYi-Vue.git
2、按照官方提供的sql文件,创建数据库
3、打开ruoyi项目修改数据库连接(application-druid.yml),修改redis等其他配置后,启动无误代表项目源码正常、数据库正常
4、为示区别,修改包名(com.ruoyi——>com.bhp.ruoyiplus),此时不能直接启动,还需修改以下两处
①typeAliasesPackage

②ApplicationConfig

备注:可以在这里直接改为com.bhp.ruoyiplus.project.**.mapper,也可以把这里的@MapperScan删掉,加在启动类。由于后期我想将该包发布成依赖供其他项目使用,为避免冲突,我选择删掉该处注解,在启动类上进行扫描

二、引入lombok,对象代码更干净
1、版本:1.16.10
2、依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.10</version>
</dependency>
三、引入MP,sql操作更简便
1、官方文档:https://mp.baomidou.com/
2、版本:3.3.0
3、依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.3.</version>
</dependency>
四、project目录下新建demo模块
1、数据库脚本
CREATE TABLE `demo` (
`id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`des` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; INSERT INTO `demo` VALUES ('', 'demomom', '好');
2、目录结构

3、模块代码
①Demo
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; /**
* @ClassName Demo
* @Description TODO
* @Author 北海派
* @Date 2020/5/18 19:24
* @Version 1.0
**/
@Data
@TableName("demo")
public class Demo{ @TableId(value = "id", type = IdType.UUID)
private String id;
@TableField("name")
private String name;
@TableField("des")
private String des;
}
②DemoMapper
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bhp.ruoyiplus.project.demo.domain.Demo; /**
* @ClassName DemoMapper
* @Description TODO
* @Author 北海派
* @Date 2020/5/18 19:30
* @Version 1.0
**/
public interface DemoMapper extends BaseMapper<Demo> {
}
③DemoService
import com.baomidou.mybatisplus.extension.service.IService;
import com.bhp.ruoyiplus.project.demo.domain.Demo; /**
* @ClassName DemoService
* @Description TODO
* @Author 北海派
* @Date 2020/5/18 19:32
* @Version 1.0
**/
public interface DemoService extends IService<Demo> {
}
④DemoServiceImpl
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bhp.ruoyiplus.project.demo.domain.Demo;
import com.bhp.ruoyiplus.project.demo.mapper.DemoMapper;
import com.bhp.ruoyiplus.project.demo.service.DemoService;
import org.springframework.stereotype.Service; /**
* @ClassName DemoServiceImpl
* @Description TODO
* @Author 北海派
* @Date 2020/5/18 19:32
* @Version 1.0
**/
@Service
public class DemoServiceImpl extends ServiceImpl<DemoMapper, Demo> implements DemoService {
}
⑤DemoController
import com.bhp.ruoyiplus.framework.web.controller.BaseController;
import com.bhp.ruoyiplus.project.demo.domain.Demo;
import com.bhp.ruoyiplus.project.demo.service.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; /**
* @ClassName DemoController
* @Description TODO
* @Author 北海派
* @Date 2020/5/18 19:22
* @Version 1.0
**/
@RestController
@RequestMapping("/demo")
public class DemoController extends BaseController { @Autowired
private DemoService demoService; @GetMapping()
public Demo get(){
Demo demo = demoService.getById("1");
return demo;
}
}
4、重启项目,用Postman获取验证码、登录获取token、访问接口,报如下错误

原因:项目使用的mybatis及其相关配置MP中自带的mybatis冲突,需要排除项目中的依赖及配置
①修改POM文件,删除如下依赖

②修改配置文件,删除application.yml中的mybatis配置,增加MP配置
# MyBatis配置
#mybatis:
# # 搜索指定包别名
# typeAliasesPackage: com.bhp.ruoyiplus.project.**.domain
# # 配置mapper的扫描,找到所有的mapper.xml映射文件
# mapperLocations: classpath*:mybatis/**/*Mapper.xml
# # 加载全局的配置文件
# configLocation: classpath:mybatis/mybatis-config.xml # MyBatis-Plus配置
mybatis-plus:
mapper-locations: classpath*:mybatis/**/*Mapper.xml
#实体扫描
typeAliasesPackage: com.bhp.ruoyiplus.project.**.domain
③删除MybatisConfig配置类

④重启项目,再次访问接口,响应正常

⑤修改DemoController,测试框架统一响应,与框架分页响应是否正常,经测试接口均正常
import com.bhp.ruoyiplus.framework.web.controller.BaseController;
import com.bhp.ruoyiplus.framework.web.domain.AjaxResult;
import com.bhp.ruoyiplus.framework.web.page.TableDataInfo;
import com.bhp.ruoyiplus.project.demo.domain.Demo;
import com.bhp.ruoyiplus.project.demo.service.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; /**
* @ClassName DemoController
* @Description TODO
* @Author 北海派
* @Date 2020/5/18 19:22
* @Version 1.0
**/
@RestController
@RequestMapping("/demo")
public class DemoController extends BaseController { @Autowired
private DemoService demoService; @GetMapping()
public AjaxResult get() {
Demo demo = demoService.getById("1");
if (null==demo){
return AjaxResult.error("无数据");
}
return AjaxResult.success(demo);
} @GetMapping("/list")
public TableDataInfo getList() {
startPage();
return getDataTable(demoService.list());
}
}
ruoyi-plus-server(一):引入Mybatis-Plus的更多相关文章
- springboot引入mybatis遇到的坑
前边分享了springboot项目的创建及springboot项目的默认配置文件等,想温习的小伙伴可移步至文章末尾阅读,感谢.今天来分享下springboot引入mybatis框架的步骤,有小伙伴 ...
- sring引入mybatis
1.首先框架结构是这样的(jar包还是要导的) 2.web.xml和springMVC-servlet.xml未作任何新的配置,这里简单贴一下代码: <?xml version="1. ...
- 在eclipse中引入mybatis和spring的约束文件
eclipse中引入mybatis约束文件步骤: 首先: config的key值 http://mybatis.org/dtd/mybatis-3-config.dtd mapper的key值 htt ...
- spring boot使用注解的方式引入mybatis的SqlSessionDaoSupport
出现这个问题, 说明一点, 我对spring的注解方式的配置只是知道一个皮毛. 没有深入理解. 有时间要把这部分充充电 package com.zhike.qizhi.common.dao; impo ...
- server.xml引入子文件配置(tomcat虚拟主机)
在配置tomcat虚拟主机时候,如何每一个虚拟主机写成单独文件,server.xml包含这些子文件? 如以下<OneinStack>中,添加JAVA环境虚拟主机后tomcat配置文件详情: ...
- server.xml引入子文件配置(tomcat虚拟主机)[转]
在配置tomcat虚拟主机时候,如何每一个虚拟主机写成单独文件,server.xml包含这些子文件? 如以下<OneinStack>中,添加JAVA环境虚拟主机后tomcat配置文件详情: ...
- Spring Boot 集成 MyBatis和 SQL Server实践
概 述 Spring Boot工程集成 MyBatis来实现 MySQL访问的示例我们见过很多,而最近用到了微软的 SQL Server数据库,于是本文则给出一个完整的 Spring Boot + M ...
- MyBatis 源码分析——介绍
笔者第一次接触跟MyBatis框架是在2009年未的时候.不过那个时候的他并不叫MyBatis,而是叫IBatis.2010年的时候改为现在的名字--MyBatis.这几年过去了,对于笔者来讲有一点陌 ...
- 玩转 SSH(六):SpringMVC + MyBatis 架构搭建(注解版)
一.创建 SSMVCAnnoDemo 项目 点击菜单,选择“File -> New Project” 创建新项目.选择使用 archetype 中的 maven-webapp 模版创建. 输入对 ...
- IDEA下使用maven构建web项目(SpringMVC+Mybatis整合)
需求背景:由于最近总是接到一些需求,需要配合前端团队快速建设移动端UI应用或web应用及后台业务逻辑支撑的需求,若每次都复用之前复杂业务应用的项目代码,总会携带很多暂时不会用到的功能或组件,这样的初始 ...
随机推荐
- kafka相关术语名词
Topic:标签名,一个消息队列的名称 Producer:生产者,发布消息 Consumer:消费者,订阅发布消息,进行处理的存在 Broker:kafka集群,有一个.多个Topic Partiti ...
- ASP.NET Core Razor Pages 初探
最近新建 Asp.net Core MVC 项目的时候不小心选错了个模板,发现了一种新的项目模板.它使用cshtml视图模板,但是没有Controller文件夹.后来才发现这是ASP.NET Core ...
- 米特运输——(dfs)
米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储 存一直是一个大问题.D星上有N个城市,我们将其顺序编号为1到N,1号城市为首都.这N个城市由N- ...
- 百度云虚拟空间(BCH)
百度云虚拟空间(BCH)上的一些默认配置 :first-child { margin-top: 0;}blockquote > :last-child { margin-bottom: 0;}i ...
- Linux网络服务第四章部署yum仓库
第四章部署yum仓库服务 1.笔记 systemctl start 命令 :重启 systemctl enable 命令 :开机自启动 netstat -anput | grep 命令:查看是否开启 ...
- Codeforces Round #623 (Div. 2, based on VK Cup 2019-2020 - Elimination Round, Engine) A Dead Pixel
讨论坏点的左右上下的矩形大小. #include <bits/stdc++.h> using namespace std; int main() { int t; cin >> ...
- CodeForces - 262B
Roma works in a company that sells TVs. Now he has to prepare a report for the last year. Roma has g ...
- 洛谷P1122 最大子树和 树形DP初步
小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题.一天他早晨骑车去上课,路上见到一个老伯正在修剪花花草草,顿时想到了一个有关修剪花卉的问题.于是当日课后,小明就向老师提 ...
- RF(用例执行方法)
一.执行 RF 脚本方法 1.执行整个项目下的所有用例 dos 窗口下输入 robot + 项目绝对路径 2.执行单个 Suite 中的所有用例 dos 窗口下输入 robot + 用例套件绝对路径 ...
- 一只简单的网络爬虫(基于linux C/C++)————支持动态模块加载
插件在软件设计中有很大的好处,可以方便地扩展各种功能,使用插件技术能够在分析.设计.开发.项目计划.协作生产和产品扩展等很多方面带来好处: (1)结构清晰.易于理解.由于借鉴了硬件总线的结构,而且各个 ...