自用代码生成器代码

代码生成器

pom.xml文件中

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.yase</groupId><artifactId>spmp</artifactId><version>0.0.1-SNAPSHOT</version><name>spmp</name><description>spmp</description><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.7.6</spring-boot.version></properties><dependencies><!--模板引擎--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency>
<!--        web--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
<!--热部署工具--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency>
<!--        mysql--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency>
<!--        lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>
<!--        test--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
<!--        整合swagger--><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency>
<!--        mybatisplus依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version></dependency>
<!--        mybatisplus代码生成器依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.2</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><mainClass>com.yase.spmp.SpmpApplication</mainClass><skip>true</skip></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>

在Test文件夹中创建测试类

package com.yase.spmp;import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;//此处代码可以自动生成系列文件
@SpringBootTest
public class TestGenerator {@Testpublic void testGenerator(){FastAutoGenerator.create("jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8", "root", "root").globalConfig(builder -> {builder.author("jiangnan") // 设置作者.enableSwagger() // 开启 swagger 模式.fileOverride() // 覆盖已生成文件.outputDir(".\\src\\main\\java"); // 指定输出目录})
//不了解忽略                
//                .dataSourceConfig(builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
//                    int typeCode = metaInfo.getJdbcType().TYPE_CODE;
//                    if (typeCode == Types.SMALLINT) {
//                        // 自定义类型转换
//                        return DbColumnType.INTEGER;
//                    }
//                    return typeRegistry.getColumnType(metaInfo);
//
//                })).packageConfig(builder -> {builder.parent("com.yase") // 设置父包名.moduleName("system"); // 设置父包模块名
//                            .pathInfo(Collections.singletonMap(OutputFile.xml, "D://")); // 设置mapperXml生成路径,此处可以使用默认的}).strategyConfig(builder -> {builder.addInclude("i_emp") // 设置需要生成的表名.addTablePrefix("i_", "c_"); // 设置过滤表前缀}).templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板.execute();}
}

导入swagger3的配置类

package com.yase.system.config;import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;@Configuration
public class Swagger3Config {/*** 创建API应用* apiInfo() 增加API相关信息* 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,* 本例采用指定扫描的包路径来定义指定要建立API的目录。** @return*/@Beanpublic Docket restApi() {return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any()).build();}//创建该API的基本信息(这些基本信息会展现在文档页面中)private ApiInfo apiInfo() {return new ApiInfoBuilder().title("title").description("https://baidu.com") .termsOfServiceUrl("https://baidu.com").contact(new Contact("dada", "https://baidu.com", "2391356197@qq.com")).build();}
}

创建状态码接口

package com.yase.system.util;public interface ResultCode {//前端element-uiInteger SUCCESS = 20000;Integer ERROR = 20001;
}

规定返回结果类

package com.yase.system.util;import lombok.Data;
import lombok.experimental.Accessors;
import java.util.HashMap;
import java.util.Map;//返回结果类
@Data
@Accessors(chain = true)
public class Result {//操作是否成功private Boolean isSuccess;//状态码private Integer code;//消息private String message;//返回数据private Map<String,Object> data;//操作成功public static Result success(){return new Result().setIsSuccess(true).setCode(ResultCode.SUCCESS).setMessage("操作成功").setData(new HashMap<>());}//操作失败public static Result error(){return new Result().setIsSuccess(false).setCode(ResultCode.ERROR).setMessage("操作失败").setData(new HashMap<>());}//用户传入数据public  Result setData(HashMap<String,Object> data) {this.data = data;return this;}public  Result setData(String key,Object value){this.data.put(key,value);return this;}
}

在control类创建相关功能

package com.yase.system.controller;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yase.system.entity.Emp;
import com.yase.system.service.IEmpService;
import com.yase.system.util.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;/*** <p>*  前端控制器* </p>** @author jiangnan* @since 2024-05-14*/
@RestController
@RequestMapping("/system/emp")
@Api("管理信息")
public class EmpController {@Resourceprivate IEmpService service;//?@GetMapping("/{id}")@ApiOperation("按照id查询数据数据")public Result selectOneData(@PathVariable Integer id){Emp byId = service.getById(id);return Result.success().setData("emp",byId);}//分页,需要传入当前的页码current和每页显示的大小size@GetMapping("/{current}/{size}")@ApiOperation("给定页码和每页大小,显示信息")public Result selectPage(@PathVariable Integer current,@PathVariable Integer size){//此处需要导入page的分页配置类Page<Emp> page = new Page<>(current,size);//无需给page获取返回对象service.page(page);return Result.success().setData("page",page);}@ApiOperation("查询所有数据")@GetMappingpublic Result select(){List<Emp> list = service.list();/*两种返回方式HashMap<String,Object> map = new HashMap<>();map.put("list",list);return Result.success().setData(map);*/return Result.success().setData("list",list);}@PostMapping@ApiOperation("保存数据")public Result save(@RequestBody Emp emp){//判断返回的状态,true返回成功,false返回errorboolean b = service.save(emp);return b?Result.success():Result.error();}@PutMapping@ApiOperation("更新数据")public Result update(@RequestBody Emp emp){return service.updateById(emp) ? Result.success():Result.error();}@DeleteMapping("/{id}")@ApiOperation("删除数据")public Result delete(@PathVariable Integer id){return service.removeById(id) ? Result.success():Result.error();}}

最后在AppServer中添加扫描mapper,即可完成

@MapperScan(“com.yase.system.mapper”)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/12083.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【软件测试】自动化测试 Selenium 篇(一)

一、什么是自动化测试 1、自动化测试介绍 自动化测试指软件测试的自动化&#xff0c;在预设状态下运行应用程序或者系统&#xff0c;预设条件包括正常和异常&#xff0c;最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 自动化就相当于将人工测试手段进行转换…

【激活函数--下】非线性函数与ReLU函数

文章目录 一、非线性函数在神经网络中的重要性二、ReLU函数介绍及其实现2.1 ReLU函数概述2.2 ReLU函数的Python实现及可视化 一、非线性函数在神经网络中的重要性 在神经网络中&#xff0c;激活函数的选择对于网络的性能和能力至关重要。阶跃函数和Sigmoid函数除了是激活函数的…

数据可视化-课堂记录

week02 # 数据可视化的发展历史 作用 格式塔原则 # 数据可视化的流程# 数据分析 指标体系建设 确定一个行业指标体系实现报表&#xff08;power bi python matplotlib seaborn pyecharts echarts&#xff09; # 数据分析面试 技术&#xff1a;sqlexcelpythonpowerbispss …

JS 实现冒泡排序

冒泡排序原理&#xff1a; 升序冒泡&#xff1a;两次循环&#xff0c;相邻元素两两比较&#xff0c;如果前面的大于后面的&#xff0c;就交互位置&#xff1b; 降序冒泡&#xff1a;两次循环&#xff0c;相邻元素两两比较&#xff0c;如果前面的小于后面的&#xff0c;就交互…

stable-diffusion-webui配置

源码地址 https://github.com/AUTOMATIC1111/stable-diffusion-webui.git报错Fresh install fail to load AttributeError: NoneType object has no attribute _id pydantic降级 pip uninstall pydantic pip install pydantic1.10.11记得要把clip-vit-large-patch14放在opena…

业务逻辑攻击是什么,如何有效进行防护

想象一下&#xff1a;您的开发团队刚推出了一款令人惊叹的全新应用程序&#xff0c;它具有顶级的API安全性&#xff0c;通过客户端保护对其进行了强化&#xff0c;甚至还设置了针对机器人攻击的防御措施。你感到这款产品很有安全保障&#xff0c;自己的团队出色地完成了工作。 …

解决Java Web应用中下载文件无法打开的问题

在Java Web应用中&#xff0c;文件下载是一个常见的功能。但有时候&#xff0c;即使代码看起来正确&#xff0c;下载的文件却无法正确打开。 问题描述 假设我们有以下代码用于下载文件&#xff1a; response.addHeader("Content-Disposition", "attachment;fi…

服务器通的远程桌面连接不上,关于服务器通畅但远程桌面连接不上问题的专业分析

在日常的企业IT管理中&#xff0c;服务器远程桌面连接是一个重要的操作功能。然而&#xff0c;有时会出现服务器网络通畅&#xff0c;但远程桌面无法连接的情况。 问题分析 1. 防火墙或安全组设置问题&#xff1a;服务器的防火墙或安全组可能阻止了远程桌面连接的端口&#xf…

adobe安装“Error:SyntaxError:JSON Parse error:Unexpec

mac电脑安装Adobe时&#xff0c;会提示错误“Error:SyntaxError:JSON Parse error:Unexpected EOF”&#xff0c;这是怎么回事儿的&#xff0c;不管您是安装AI、PS、PR还是LR&#xff0c;如果也遇到相同的问题&#xff0c;可以参考一下方法解决&#xff1a; 「adobe安装提示错误…

Java RMI反序列化总结篇-01

1.java rmi反序列化 RMI 允许一个应用程序访问另外一个服务器或虚拟机上的对象&#xff0c;方法和服务&#xff0c;它使远程方法调用就像在本地调用一样简单。它为用户屏蔽了底层的网络传输细节&#xff0c;使用的时候只需适当处理异常即可。所以 RMI 是非常容易使用的&#x…

Kubernetes集群安装

Kubernetes集群安装 环境准备 192.168.1.53 k8s-master 192.168.1.52 k8s-node-1 192.168.1.51 k8s-node-2 设置三台机器的主机名&#xff1a; Master上执行&#xff1a; [rootlocalhost ~]# hostnamectl --static set-hostname k8s-masterNode1上执行&#xff1a; [ro…

vue3+vite项目部署服务器,选择非根目录访问

背景 vue3vite项目&#xff0c;需要部署服务器。 但是根目录已经部署了另外一个项目A了&#xff0c;这个时候要在部署另外一个项目B。 问题 比如你的地址是http://test.com 之前直接输入http://test.com即可访问A项目 如果B项目也这么干的话就冲突了 访问A&#xff1a;http…

哪款骨传导耳机最值得入手?精选5款顶尖配置的骨传导耳机,闭眼入也不踩雷!

作为一名有着多年工作经验的数码博主&#xff0c;我见证了无数因盲目追求新颖而引发的听力问题。在此&#xff0c;我必须郑重提醒大家&#xff0c;虽然市面上充斥着众多声称能提供卓越音质和佩戴舒适度的骨传导耳机品牌&#xff0c;但它们之间存在大量劣质产品&#xff0c;这类…

centos7安装zabbix-server

zabbixan-server安装 环境安装zabbix安装zabbix配置apachezabbix-UI前端配置修改zabbix为中文语言 环境 准备&#xff1a; centos7系统、mysql数据库/MariaDB数据库 mysql数据库可参照&#xff1a;https://blog.csdn.net/weixin_61367575/article/details/138774428?spm1001.…

算法-卡尔曼滤波之卡尔曼滤波的第二个方程:预测方程(状态外推方程)

在上一节中&#xff0c;使用了静态模型&#xff0c;我们推导出了卡尔曼滤波的状态更新方程&#xff0c;但是在实际情况下&#xff0c;系统都是动态&#xff0c;预测阶段&#xff0c;前后时刻的状态是改变的&#xff0c;此时我们引入预测方程&#xff0c;也叫状态外推方程&#…

企业为什么进行大数据迁移以及注意事项

在当今数字化时代&#xff0c;数据的迁移成为了企业优化其数据架构、提高数据处理能力、确保业务连续性和数据安全的关键步骤。企业可能出于多种原因&#xff0c;如成本效益、性能提升、系统升级、数据集中管理或云服务集成等&#xff0c;选择将数据从一个存储系统迁移到另一个…

Spring Boot 整合讯飞星火3.5通过接口Api接口实现聊天功能(首发)复制粘贴即可使用,后续更新WebSocket实现聊天功能

程序员必备网站&#xff1a; 天梦星服务平台 (tmxkj.top)https://tmxkj.top/#/ 1.pom.xml <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.72</version></dependency><depen…

html5关于WebSocket的一些特点与用例

WebSocket通信机制是一种在单个TCP连接上进行全双工通信的协议&#xff0c;它允许服务器主动向客户端推送数据&#xff0c;而无需等待客户端的请求。以下是WebSocket通信的主要机制&#xff1a; 握手协议&#xff1a;WebSocket通信的第一步是通过HTTP协议进行握手。当客户端发…

C++ QT设计模式:访问者模式

基本概念 访问者模式&#xff08;Visitor Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许你在不改变被访问类的前提下&#xff0c;定义对其进行操作的新操作。 实现的模块有&#xff1a; ObjectStructure&#xff08;对象结构&#xff09;&#xff1a;用于存储…

轻松拿下指针(5)

文章目录 一、回调函数是什么二、qsort使用举例三、qsort函数的模拟实现 一、回调函数是什么 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指针&#xff08;地址&#xff09;作为参数传递给另⼀个函数&#xff0c;当这个指针被⽤来调⽤其所指向的函数 时&#x…