后端来说的话毕竟只进行了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项目(后端)相关推荐

  1. springboot+vue+element+mybatisplus项目(前端)

    Aside.vue文件(侧边栏) <!--放菜单栏--> <template><!-- 侧边栏必须有的两个函数handleOpen,handleClose-->&l ...

  2. 实验管理系统springboot+vue+element ui项目开发

    实验管理系统 某学院实验老师长期采用人工的形式完成药品试剂的入库.查询.出库的流程.但这种方式存在诸多问题和不便: 1. 在仓库运行流程中效率不高,容易出错. 2. 管理人员不能方便的了解每种物品的状 ...

  3. 基于Java+SpringBoot+vue+element实现前后端分离蛋糕商城系统详细设计

    前言介绍: 随着社会的快速发展,计算机的影响是全面且深入的.人们生活水平的不断提高,日常生活中用户对网上蛋糕商城方面的要求也在不断提高,网上蛋糕商城得到广大用户的青睐,使得网上蛋糕商城的开发成为必需而 ...

  4. 基于Java+SpringBoot+vue+element实现前后端分离牙科诊所管理系统详细设计

    博主介绍:✌公司项目主程.全网粉丝10W+,csdn特邀作者.博客专家.CSDN新星计划导师.java领域优质创作者,CSDN博客之星TOP100.掘金/华为云/阿里云/InfoQ等平台优质作者.专注 ...

  5. 基于Java+SpringBoot+vue+element实现前后端分离玩具商城系统

  6. 使用SpringBoot + Vue (若依前后端分离版) 写项目的一些总结(持续更新...)

    使用SpringBoot + Vue(若依前后端分离版) 写项目的一些总结 获取Redis服务 @Autowired private RedisCache redisCache; String cap ...

  7. 电影购票系统(小小影院),SpringBoot+vue 结构启动项目(带源码,不收费)

    文章目录 功能简介 部署须知 可能遇到的错误 部分运行截图 参考文档 功能简介 SpringBoot+SpringSecurity+MyBatis-Plus 框架的前后端电影项目,前端使用vue+el ...

  8. Maynor手把手教你完成一个SpringBoot+Vue+Element实现的SPA商品管理系统(增删改查)

    Maynor手把手教你完成一个SpringBoot+Vue+Element实现的SPA商品管理系统(增删改查) 前言 完整代码 三连后私信我获取~ 撸了一上午完成的SPA商品管理系统,求三连! B站演 ...

  9. SpringBoot+Vue+OpenLayers6完成前后端分离的“疫情地图”实战项目(一、地图数据处理及代码托管)

    前面我们介绍了Vue+webpack+openlayer的地图基础知识,从这一章开始,我们将正式开始我们的基于SpringBoot+Vue+OpenLayers的实战项目---疫情地图! 一.疫情地图 ...

最新文章

  1. C# Winform只能输入数字的TextBox---补充
  2. 阿里疯传!Python+Tableau+Excel数分教程(附内部资源)
  3. Android插件化开发基础之Java反射机制研究
  4. 我不是天生的飞鸽传书2011
  5. SQL Server读懂语句运行的统计信息 SET STATISTICS TIME IO PROFILE ON
  6. 10大黑客专用的 Linux 操作系统...
  7. 【BZOJ2959】长跑 LCT+并查集
  8. item_review - 获得淘宝商品评论
  9. GAN的评价图像评价指标(IS和FID)
  10. 【Keil】十字路口车辆行人红绿灯实现 _单片机Keil开发
  11. jupyter notebook 拒绝连接 以及 查 IP
  12. java类与接口思维导图_详解java接口基础知识附思维导图
  13. makefile文件解释
  14. 【面试题集 —— No.01】常见图片格式BMP、JPG/JPEG、PNG、GIF、TIFF、SVG的区别
  15. Win10安装Tomcat服务器与配置环境变量
  16. springboot环境配置,yml格式,不同环境切换
  17. BUSINESS SKYPE 不能登录
  18. 阿里天池比赛快速入门
  19. 51单片机总结之程序状态字(PSW)
  20. 北大清华2022年在各地录取人数排名

热门文章

  1. 传统春节海报设计没有思路?
  2. 素材 | 3D立体设定数据多彩数据统计图元素PSD模板
  3. python 线程通信 会涉及到拷贝吗_Python如何实现线程间通信
  4. poj 1006 java_POJ 1006 Java:中国剩余定理
  5. pcm转换在线工具_有木有好用的CAD格式转换工具可以推荐?在线等,挺急的
  6. Linux内核安装-5.9.1为例
  7. PyCUDA Documentation
  8. Linux内核协议栈-一个socket的调用过程,从用户态接口到底层硬件
  9. Build desktop apps for Windows PCs
  10. wsl2启动桌面_WSL2使用xrdp实现图形桌面