项目源码

https://gitee.com/bseaworkspace/proejctsexample

POM

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>zz</groupId><artifactId>basicSSM</artifactId><version>1.0-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.6.RELEASE</version></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><!--<version>5.1.47</version>--><version>8.0.15</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.2.0</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.2.0</version></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.1</version></dependency><!-- fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.15</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency><!-- swagger2 --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.6.1</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.6.1</version></dependency></dependencies><repositories><repository><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url></repository></repositories><build><finalName>basicssm</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

自动生成代码类

package com.zz;/*** @Description: java类作用描述* @Author: Bsea* @CreateDate: 2019/10/9$ 19:34$*/
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;import java.util.ArrayList;
import java.util.List;/*** @description:* @author: Bsea* @createDate: 2019/10/6* @version: 1.0*/
public class MysqlGenerator {// 1.使用此代码生成器需要修改:数据库基本信息,及设置父包名,项目模块名,数据库表前缀几项// 2.其他设置,请自行深入代码查看参数设置// 3.默认生成类地址是 /src/main/java mapper.xml文件地址是 /src/main/resource下// 4.仅做工具使用,不讨论代码规范问题public static void main(String[] args) {// 数据库信息String driver = "com.mysql.cj.jdbc.Driver";String dataBaseUrl = "jdbc:mysql://localhost:3306/java10?useSSL=false&serverTimezone=Asia/Shanghai";String userName = "root";String password = "Java20190713*yy";String tablePrefix = "";// 数据库表前缀 例:tb_user的"tb_" 没有则改为 = null即可String parentPackageName = "com.zz";// 父包名String moduleName = "order";// 项目模块名// 执行生成代码excuteGeneratorCode(driver, dataBaseUrl, userName, password, tablePrefix, parentPackageName, moduleName);}/*** 代码生成*/public static void excuteGeneratorCode(String driver, String dataBaseUrl, String userName, String password,String tablePrefix, String parentPackageName, String moduleName) {AutoGenerator mpg = new AutoGenerator();// #######################全局配置#######################GlobalConfig gc = new GlobalConfig();String projectPath = System.getProperty("user.dir");// 文件输出地址gc.setOutputDir(projectPath + "/src/main/java");gc.setFileOverride(false); // 是否覆盖 默认falsegc.setOpen(false);// 生成后自动打开文件 默认truegc.setAuthor("Bsea");// 作者 默认 nullgc.setActiveRecord(false);// 不需要ActiveRecord(AR模式)特性的请改为falsegc.setEnableCache(false);// XML 二级缓存gc.setBaseResultMap(false);// XML ResultMap 默认falsegc.setBaseColumnList(false);// XML columList 默认false// 指定生成的主键的ID类型
//      gc.setIdType(IdType.ID_WORKER);// 时间类型对应策略: 只使用 java.util.date 代替 默认值:TIME_PACK
//      gc.setDateType(DateType.ONLY_DATE);// 自定义文件命名,%s 为占位符 会自动填充表实体属性!gc.setControllerName("%sController");// controller 命名方式 默认值:null 例如:%sBusinessImpl 生成 UserBusinessImplgc.setServiceName("%sService");gc.setServiceImplName("%sServiceImpl");gc.setMapperName("%sMapper");gc.setXmlName("%sMapper");gc.setSwagger2(true);mpg.setGlobalConfig(gc);// #######################数据源配置#######################DataSourceConfig dsc = new DataSourceConfig();dsc.setDriverName(driver);dsc.setUsername(userName);dsc.setPassword(password);// 请更改数据库名称为你的数据库名dsc.setUrl(dataBaseUrl);mpg.setDataSource(dsc);// #######################策略配置#######################StrategyConfig strategy = new StrategyConfig();// 此处可以修改为您的表前缀,修改为你数据库中表的前缀 如tb_user表 就填写tb_ 如果没有前缀请设置为空或注释该行代码strategy.setTablePrefix(new String[] { tablePrefix });// 表前缀strategy.setNaming(NamingStrategy.underline_to_camel);// 数据库表映射到实体的命名策略strategy.setColumnNaming(NamingStrategy.underline_to_camel);// 数据库表字段映射到实体的命名策略, 未指定按照 naming 执行// 需要排除的表名,允许正则表达式strategy.setExclude("user_info");strategy.setEntityLombokModel(true);// 【实体】是否为lombok模型(默认 false)// Boolean类型字段是否移除is前缀(默认 false)strategy.setEntityBooleanColumnRemoveIsPrefix(false);strategy.setRestControllerStyle(false);// 生成 @RestController 控制器 默认为truestrategy.setControllerMappingHyphenStyle(true);// 驼峰转连字符 默认true// 乐观锁属性名称
//      strategy.setVersionFieldName("version");// 逻辑删除属性名称
//      strategy.setLogicDeleteFieldName("deleteMark");mpg.setStrategy(strategy);// #######################包配置#######################PackageConfig pc = new PackageConfig();// 父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名pc.setParent(parentPackageName);// 一般是公司域名倒写 如 com.baidupc.setModuleName(moduleName);// 父包模块名 项目模块名称 如 userpc.setEntity("entity");// 实体类包名pc.setController("controller");// 控制层包名 默认为webpc.setService("service");// 业务接口层包名pc.setServiceImpl("serviceImpl");// 业务实现层包名pc.setMapper("mapper");// mapper接口层包名pc.setXml("xml");// mapper.xml包名mpg.setPackageInfo(pc);// #######################自定义配置#######################// 如果模板引擎是 freemarker
//        String templatePath = "/templates/mapper.xml.ftl";// 如果模板引擎是 velocityString templatePath = "/templates/mapper.xml.vm";InjectionConfig injectionConfig = new InjectionConfig() {@Overridepublic void initMap() {// TODO Auto-generated method stub}};List<FileOutConfig> focList = new ArrayList<FileOutConfig>();// 调整 xml 生成目录演示focList.add(new FileOutConfig(templatePath) {@Overridepublic String outputFile(TableInfo tableInfo) {return projectPath + "/src/main/resources/mapper/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;}});injectionConfig.setFileOutConfigList(focList);mpg.setCfg(injectionConfig);mpg.setTemplate(new TemplateConfig().setXml(null));// 执行生成mpg.execute();}}

Controller

package com.zz.user.controller;import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zz.entity.LoginUser;
import com.zz.result.ResponseDataUtil;
import com.zz.user.entity.User;
import com.zz.user.service.UserService;
import com.zz.util.JwtUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;import org.springframework.stereotype.Controller;import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** <p>* 客户端用户表 前端控制器* </p>** @author Bsea* @since 2019-10-08*/
@Api(value = "用户Controller")
@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {@ResourceUserService userService;@ApiOperation(value = "获取用户信息", notes = "根据用户id获取用户信息")@ApiImplicitParam(name = "id", value = "用户id", required = true, dataType = "Long", paramType = "path")@GetMapping("/{id}")public @ResponseBodyUser getUserById(@PathVariable(value = "id") String id) {return userService.getById(Long.parseLong(id));}@ApiOperation(value = "获取用户列表", notes = "获取用户列表")@GetMapping("/list")public @ResponseBodyList<User> getUserList() {return userService.list();}@ApiOperation(value = "分页获取用户列表", notes = "获取用户列表分页")@GetMapping("/list/{pageNo}/{pageSize}")public @ResponseBodyIPage<User> getUserListpage(@PathVariable("pageNo") Integer pageNo, @PathVariable("pageSize") Integer pageSize) {IPage<User> page = new Page<>(pageNo, pageSize);return userService.page(page);}@ApiOperation(value = "新增用户", notes = "根据用户实体创建用户")@ApiImplicitParam(name = "user", value = "用户实体", required = true, dataType = "User")@PostMapping("/add")public @ResponseBodyMap<String, Object> addUser(@RequestBody User user) {Map<String, Object> map = new HashMap<>();map.put("result", "success");return map;}@ApiOperation(value = "登录", notes = "根据用户手机号码和密码登录")@ApiImplicitParam(name = "user", value = "用户实体", required = true, dataType = "User")@PostMapping("/login")public Object login(@RequestBody User user) {log.warn("执行登录操作!");//先执行登录验证的过滤操作,才会执行后面这些乱七八糟的异常//throw new MyException("测试自定义异常!");QueryWrapper<User> qryWrapper = new QueryWrapper<>();qryWrapper.eq("userPhone",user.getUserPhone());qryWrapper.eq("userPassword",user.getUserPassword());User dbUser = userService.getOne(qryWrapper);LoginUser loginUser=new LoginUser();loginUser.setUser(dbUser);if (loginUser != null) {//根据电话号码和密码加密生成tokenString token = JwtUtil.sign(loginUser.getUser().getUserPhone(), loginUser.getUser().getUserPassword());loginUser.setToken(token);return loginUser;}return ResponseDataUtil.failure("登录失败!");}@ApiOperation(value = "删除用户", notes = "根据用户id删除用户")@ApiImplicitParam(name = "id", value = "用户id", required = true, dataType = "Long", paramType = "path")@DeleteMapping("/{id}")public @ResponseBody Map<String, Object> deleteUser(@PathVariable(value = "id") Long id) {Map<String, Object> map = new HashMap<>();map.put("result", "success");return map;}@ApiOperation(value = "更新用户", notes = "根据用户id更新用户")@ApiImplicitParams({@ApiImplicitParam(name = "id", value = "用户id", required = true, dataType = "Long", paramType = "path"),@ApiImplicitParam(name = "user", value = "用户实体", required = true, dataType = "UserInfo") })@PutMapping("/{id}")public @ResponseBody Map<String, Object> updateUser(@PathVariable(value = "id") Long id, @RequestBody User user) {Map<String, Object> map = new HashMap<>();map.put("result", "success");return map;}}

SpringBootMybatisPlus 种子项目相关推荐

  1. 详细介绍CoinList 2022 年夏季种子项目, web3概念最亮眼!

    公众号ID(蟹老板的进击之路) 这周市场其实挺冷清的,消息面上没有出现特别大的利好,除了一些做事的项目方,比如SOL出web3手机,以及DYDX的迁移Cosmos生态中,这些消息基本算是为后市环境回暖 ...

  2. SpringBoot JPA 种子项目

    项目源码 https://gitee.com/bseaworkspace/proejctsexample 演示 创建项目 Pom.xml中配置需要的包 <?xml version="1 ...

  3. 【python种子项目ppc】一行代码生成项目与开发详细指导

    正式的Python专栏第12篇,同学站住,别错过这个从0开始的文章! 前面学委介绍了pypi-seed优质库,不过学习编程要从项目实战入手. 下面我们重点是使用这个工具,快速生成一个项目,然后开发自己 ...

  4. 【python种子项目ppc】保姆级别指导给项目添加测试

    正式的Python专栏第13篇,同学站住,别错过这个从0开始的文章! 前面学委介绍了 pypi-seed优质库快速生成一个项目,然后开发自己的翻译小项目. 这次我们开发函数并编写测试代码,项目中持续加 ...

  5. 种子项目:Vite 搭建 Vue3 + TypeScript 项目

    技术栈 Vue 3.x Typescript Vite 2.x Pinia Vue-Router 4.x Element-plus UI And More- 源码地址 (创作不易,欢迎点颗 star ...

  6. 03-官方种子项目,目录,文件介绍

  7. 一个mapper接口有多个mapper.xml 文件_爱了!分享一个基于Spring Boot的API、RESTful API项目种子(骨架)!...

    点击上方"Java专栏",选择"置顶或者星标" 第一时间阅读精彩文章! 1.☞ 程序员进阶必备资源免费送「21种技术方向!」 点击查看☜ 2.☞ <Jav ...

  8. SpringBoot 偷懒小工具:项目种子生成器

    在github上发现了一个偷懒小工具,可以根据数据库的表结构自动生成部分代码,github地址:GitHub - lihengming/spring-boot-api-project-seed: 一个 ...

  9. 一个基于 Spring Boot 的项目骨架

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 最近使用Spring Boot 配合 MyBatis .通用Map ...

最新文章

  1. 我爱我家 CIO 刘东颖:如何靠六大维度提升“数字化”能力?|鲸犀峰会
  2. 如何实现可以获取最小值的栈?
  3. bzoj5183 [Baltic2016]Park
  4. 银河麒麟更换源及离线下载deb
  5. 如何自动化识别异常数据?达到智能预警?
  6. 卷积,DFT,FFT,图像FFT,FIR 和 IIR 的物理意义
  7. 教育部计算机考研大纲,2018考研大纲从哪里看?
  8. 基础编程题目集 6-8 简单阶乘计算 (10 分)
  9. Unix环境下的编程,所涉及的主要c语言知识
  10. 15.TCP/IP 详解卷1 --- TFTP:简单文件传送协议
  11. 2021“华为杯”第十八届中国研究生数学建模竞赛有感
  12. Java完全自学手册pdf,flutter中文网
  13. 打印机不弹出打印窗口_打印CAD图纸总是留白?做好这个操作,能打印出你想要的CAD图纸...
  14. Java版实现一个简单的电话簿
  15. iOS 视频字幕srt文件解析
  16. 前端:让我们做一个快乐的切图仔!
  17. 离线语音智能家居控制
  18. 如何把图片缩小到200k?怎么压缩图片到指定像素?
  19. 新一代视频压缩技术 H.265 解析
  20. 软骨病——成年人的缺钙病

热门文章

  1. win打印显示打印服务器错误,由于打印机的当前设置有问题,windos无法打印_由于打印机设置word无法打印解决方法...
  2. Arduino-IRremote-红外遥控器,发射与接收
  3. js加减乘除丢失精度问题及解决方法
  4. 2020晓庄学院专转本C语言考试试卷,2020南京晓庄学院专转本自主招生考试软件工程专业考试大纲...
  5. 相机镜头工作原理图解
  6. 前端css弹性布局各种属性
  7. python下载图片到文件夹_Python下载图片并保存本地的四种方法
  8. 视频调度指挥系统服务器,非常实用的应急指挥中心的视频系统设计方案
  9. 证券数据如何到达客户端
  10. 嵌入式 SIMCOM平台AT命令中文参考