springboot+vue+element+mybatisplus项目(后端)
后端来说的话毕竟只进行了CRUD所以代码量还是很少,很简单的,后端有一些需要特别注意的点!
首页第一步连接数据库配置myabatisPlus需要导入的pom依赖是:
<!-- mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.1</version></dependency>
导入依赖之后在application.properties文件里面写数据库连接等等:
server.port=9090
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/travelmanage?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=travelmanage
spring.datasource.password=travelmanage
mybatisPlus需要一个配置类mybatisPlusConfig
package cn.com.zzn.common;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*
* @description mybatis-plus 分页插件
* *///Spring boot方式
@Configuration
//扫描包 扫描到接口
@MapperScan("cn.com.zzn.mapper")
public class MybatisPlusConfig {/** 分页插件* */// 最新版@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
//DbType.MYSQL需要设置数据库类型为DbType.MYSQL否者查出来的数据为nullinterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
}
Result封装类
package cn.com.zzn.common;//Result我们返回给前台数据的一个包装类,后台返回给前台的数据是json,json里面会包含几个属性
public class Result<T> {//code告诉前台返回的数据是成功还是失败,失败code就不会是0private String code;//msg放数据信息private String msg;//T表示任何一种数据类型都可以被result所包含,定义T可以包含多个表的实体类private T data;public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public T getData() {return data;}public void setData(T data) {this.data = data;}public Result(){}public Result(T data){this.data = data;}public static Result success(){Result result = new Result<>();result.setCode("0");result.setMsg("成功");return result;}public static <T> Result<T> success(T data){Result<T> result = new Result<>(data);result.setCode("0");result.setMsg("成功");return result;}public static Result error(String code,String msg){Result result = new Result();result.setCode(code);result.setMsg(msg);return result;}
}
实体类层
package cn.com.zzn.entity;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;@TableName("user") //mybatis-plus需要跟数据库的表名对应
@Data
public class User {@TableId(type = IdType.AUTO)// 设置自增private Integer id;@TableField("userId")private String userId;@TableField("userPwd")private String userPwd;private String nickName;private Integer age;private String sex;private String address;
}
实习crud的mapper层
@Repository
public interface UserMapper extends BaseMapper<User> {}
controller层
import cn.com.zzn.common.Result;
import cn.com.zzn.entity.User;
import cn.com.zzn.mapper.UserMapper;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;/*** @RequestBody前台传入一个json对象后台将它映射成Java的一个实体* */@RestController
@RequestMapping("/user")
public class UserController {//没写业务层不规范@ResourceUserMapper userMapper;@PostMappingpublic Result<?> save(@RequestBody User user) {if (user.getUserPwd() == null){user.setUserPwd("123456");}userMapper.insert(user);return Result.success();}/*** search是模糊查询的值* */@GetMappingpublic Result<?> findPage(@RequestParam(defaultValue = "1") Integer pageNum,@RequestParam(defaultValue = "10") Integer pageSize,@RequestParam(defaultValue = "") String search) {LambdaQueryWrapper<User> wrapper = Wrappers.<User>lambdaQuery();
// isNotBlank判断search不是空if (StrUtil.isNotBlank(search)){//避免nickName为null的时候查不出来wrapper.like(User::getNickName,search);}//第一个参数传的分页,第二个参数传的模糊查询 ::取属性值
// Page<User> userPage = userMapper.selectPage(new Page<>(pageNum,pageSize ), Wrappers.<User>lambdaQuery().like(User::getNickName, search));Page<User> userPage = userMapper.selectPage(new Page<>(pageNum,pageSize ),wrapper);return Result.success(userPage);}
}
sql文件
-- auto-generated definition
CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',`userId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '用户名',`userPwd` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '密码',`nick_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '昵称',`age` int(11) NULL DEFAULT NULL COMMENT '年龄',`sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '性别',`address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '地址',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户信息表' ROW_FORMAT = Dynamic;INSERT INTO `user` VALUES (1, 'admin', 'admin', '管理员', 32, '男', '北京市');
INSERT INTO `user` VALUES (5, '2', NULL, '2', 2, '女', '2');
INSERT INTO `user` VALUES (6, '3', '123456', '3', 3, '未知', '3');
INSERT INTO `user` VALUES (7, '11', NULL, '11', 11, '男', '11');
INSERT INTO `user` VALUES (8, '2', NULL, '2', 2, '女', '2');
INSERT INTO `user` VALUES (10, '11', NULL, '11', 11, '男', '11');
INSERT INTO `user` VALUES (11, '2', NULL, '2', 2, '女', '2');
INSERT INTO `user` VALUES (13, 'zhang', '123', NULL, NULL, NULL, NULL);
springboot+vue+element+mybatisplus项目(后端)相关推荐
- springboot+vue+element+mybatisplus项目(前端)
Aside.vue文件(侧边栏) <!--放菜单栏--> <template><!-- 侧边栏必须有的两个函数handleOpen,handleClose-->&l ...
- 实验管理系统springboot+vue+element ui项目开发
实验管理系统 某学院实验老师长期采用人工的形式完成药品试剂的入库.查询.出库的流程.但这种方式存在诸多问题和不便: 1. 在仓库运行流程中效率不高,容易出错. 2. 管理人员不能方便的了解每种物品的状 ...
- 基于Java+SpringBoot+vue+element实现前后端分离蛋糕商城系统详细设计
前言介绍: 随着社会的快速发展,计算机的影响是全面且深入的.人们生活水平的不断提高,日常生活中用户对网上蛋糕商城方面的要求也在不断提高,网上蛋糕商城得到广大用户的青睐,使得网上蛋糕商城的开发成为必需而 ...
- 基于Java+SpringBoot+vue+element实现前后端分离牙科诊所管理系统详细设计
博主介绍:✌公司项目主程.全网粉丝10W+,csdn特邀作者.博客专家.CSDN新星计划导师.java领域优质创作者,CSDN博客之星TOP100.掘金/华为云/阿里云/InfoQ等平台优质作者.专注 ...
- 基于Java+SpringBoot+vue+element实现前后端分离玩具商城系统
- 使用SpringBoot + Vue (若依前后端分离版) 写项目的一些总结(持续更新...)
使用SpringBoot + Vue(若依前后端分离版) 写项目的一些总结 获取Redis服务 @Autowired private RedisCache redisCache; String cap ...
- 电影购票系统(小小影院),SpringBoot+vue 结构启动项目(带源码,不收费)
文章目录 功能简介 部署须知 可能遇到的错误 部分运行截图 参考文档 功能简介 SpringBoot+SpringSecurity+MyBatis-Plus 框架的前后端电影项目,前端使用vue+el ...
- Maynor手把手教你完成一个SpringBoot+Vue+Element实现的SPA商品管理系统(增删改查)
Maynor手把手教你完成一个SpringBoot+Vue+Element实现的SPA商品管理系统(增删改查) 前言 完整代码 三连后私信我获取~ 撸了一上午完成的SPA商品管理系统,求三连! B站演 ...
- SpringBoot+Vue+OpenLayers6完成前后端分离的“疫情地图”实战项目(一、地图数据处理及代码托管)
前面我们介绍了Vue+webpack+openlayer的地图基础知识,从这一章开始,我们将正式开始我们的基于SpringBoot+Vue+OpenLayers的实战项目---疫情地图! 一.疫情地图 ...
最新文章
- C# Winform只能输入数字的TextBox---补充
- 阿里疯传!Python+Tableau+Excel数分教程(附内部资源)
- Android插件化开发基础之Java反射机制研究
- 我不是天生的飞鸽传书2011
- SQL Server读懂语句运行的统计信息 SET STATISTICS TIME IO PROFILE ON
- 10大黑客专用的 Linux 操作系统...
- 【BZOJ2959】长跑 LCT+并查集
- item_review - 获得淘宝商品评论
- GAN的评价图像评价指标(IS和FID)
- 【Keil】十字路口车辆行人红绿灯实现 _单片机Keil开发
- jupyter notebook 拒绝连接 以及 查 IP
- java类与接口思维导图_详解java接口基础知识附思维导图
- makefile文件解释
- 【面试题集 —— No.01】常见图片格式BMP、JPG/JPEG、PNG、GIF、TIFF、SVG的区别
- Win10安装Tomcat服务器与配置环境变量
- springboot环境配置,yml格式,不同环境切换
- BUSINESS SKYPE 不能登录
- 阿里天池比赛快速入门
- 51单片机总结之程序状态字(PSW)
- 北大清华2022年在各地录取人数排名
热门文章
- 传统春节海报设计没有思路?
- 素材 | 3D立体设定数据多彩数据统计图元素PSD模板
- python 线程通信 会涉及到拷贝吗_Python如何实现线程间通信
- poj 1006 java_POJ 1006 Java:中国剩余定理
- pcm转换在线工具_有木有好用的CAD格式转换工具可以推荐?在线等,挺急的
- Linux内核安装-5.9.1为例
- PyCUDA Documentation
- Linux内核协议栈-一个socket的调用过程,从用户态接口到底层硬件
- Build desktop apps for Windows PCs
- wsl2启动桌面_WSL2使用xrdp实现图形桌面