自用代碼生成器代碼

代碼生成器

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.pswp.cn/web/12083.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12083.shtml
英文地址,請注明出處:http://en.pswp.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…