MybatisPlus也能轻松生成三层架构代码?

👩🏽‍💻个人主页:阿木木AEcru

🔥 系列专栏:《Docker容器化部署系列》 《Java每日面筋》

💹每一次技术突破,都是对自我能力的挑战和超越。

一、前言

三层架构是一种将应用程序分为三个主要逻辑层的设计模式,旨在实现解耦、提高可维护性和可扩展性。这三个层分别是:

  1. 表示层(Presentation Layer):负责处理用户界面和展示数据,接收用户输入并将其转发到业务逻辑层处理。
  2. 业务逻辑层(Business Logic Layer):包含应用程序的业务规则和工作流程,处理表示层的请求并调用数据访问层进行数据操作。
  3. 数据访问层(Data Access Layer):与数据库或其他持久化存储交互,执行数据的CRUD(创建、读取、更新、删除)操作。

三层架构的流程图

下面是一个简化的三层架构流程图示例:

为什么使用三层架构?

  • 分离关注点:每个层只关注自己的职责,使得代码更加模块化。
  • 可维护性:由于层之间的独立性,修改一个层的代码不太可能影响到其他层。
  • 可测试性:业务逻辑层可以独立于表示层和数据访问层进行测试。
  • 可扩展性:可以更容易地扩展或替换某一层,而不影响其他层。

好啦!话不多说,也就简单的过一下一些概念。接下来就开始今天的正题啦!

二、效果图

三、Maven依赖

<!--mybatis--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency><!--mybatis plus extension,包含了mybatis plus core--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-extension</artifactId><version>3.5.3.1</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.3.1</version></dependency><!--引擎模板依赖--><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.7</version></dependency>

四、核心代码


public class gen {public static void main(String[] args) {String dbName = "hr";//需要生成的表String[] tableNames = {"org_sales_area"};for (String tableName : tableNames) {FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/"+dbName+"?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&allowMultiQueries=true&allowPublicKeyRetrieval=true","root","root").globalConfig(builder -> {builder.author("hr") // 设置作者
//                            .enableSwagger() // 开启 swagger 模式.fileOverride() // 覆盖已生成文件.outputDir("D://生成实体//"); // 指定输出目录}).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.itbanana.org") // 设置父包名.pathInfo(Collections.singletonMap(OutputFile.xml, "D://生成实体//")); // 设置mapperXml生成路径}).strategyConfig(builder -> {builder.addInclude(tableName)// 设置过滤表后缀; // 设置需要生成的表名
//                        .addFieldSuffix("DO");}).templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板.execute();}}}

直接执行生成即可,是不是很简单? 你可以尝试一下,免去了不少创建类的时间。

感谢观看至此,希望该文章能够帮助到您提升知识和技能。如果您喜欢我的内容,请不要忘记点赞和分享哦!👍

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

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

相关文章

天猫商品搜索API返回值说明:关键字搜索如何精准定位商品,精准定位,一键直达!

通过天猫商品搜索API&#xff0c;关键词搜索不再是难题。精准定位&#xff0c;快速找到您心仪的商品&#xff0c;开启便捷购物新时代。掌握API返回值的奥秘&#xff0c;让您的搜索更智能、更高效&#xff01; 天猫商品搜索API&#xff08;如item_search&#xff09;的返回值设计…

矩池云jupyter运行opengait代码 未完成版

文章目录 前言——矩池云的使用技巧1.切换源 一、下载数据集二、下载模型三、环境配置1.查看python、torch、torchvision版本2.查看一些包版本是否过高3.下载包 四、开始训练1.设置环境变量2.遇到的问题&#xff08;1&#xff09;torch.cuda.is_available()返回false&#xff0…

Spring Data JPA的一对一、LazyInitializationException异常、一对多、多对多操作

Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 4、Spring Data JPA的一对一、LazyInitializationException异常、一对多、多对多操作 前言 通过前三篇Sprin…

VisualGDB : 解决编码导致的编译错误

一、问题 在Visual Studio中使用VisualGDB编译调试代码时&#xff0c;会报编码的问题&#xff0c;如下&#xff1a; 二、解决方法 别慌&#xff0c;在VisualGDB Project Properties中添加如下编码设置&#xff1a; 【CMD】 set charset UTF-8 set target-charset GBK set…

深度学习中的优化算法:选择现有的还是自创?

深度学习中的优化算法 深度学习中的优化算法&#xff1a;选择现有的还是自创&#xff1f;现有优化算法的优势**优点包括**&#xff1a; 开发新的优化算法的考虑**开发新算法的原因**&#xff1a;**开发新算法的风险**&#xff1a; 实用建议结论 深度学习中的优化算法&#xff1…

Golang Colly爬取图片gorm存储数据

语言:Golang 库:Iris/Colly/gorm 运行结果 text/html; charset=utf-8 It is image 20240429222029_0_0.jpg Saved file: images\20240429222029_0_0.jpg text/html; charset=utf-8 It is image 20240429222030_1_0.jpg Saved file: images\20240429222030_1_0.jpg It is ima…

fiscobcos 3.x linux安装与java简单调用

所用环境 vmware 16 Pro centos7.6 jdk11.0.6 ideal 2022 1、安装fiscobcos # 创建操作目录 # cd ~ && mkdir -p fisco && cd fisco# 下载建链脚本 # curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v3.6.0/build_chain.sh &a…

扩展学习|一文读懂知识图谱

一、知识图谱的技术实现流程及相关应用 文献来源&#xff1a;曹倩,赵一鸣.知识图谱的技术实现流程及相关应用[J].情报理论与实践,2015, 38(12):127-132. &#xff08;一&#xff09;知识图谱的特征及功能 知识图谱是为了适应新的网络信息环境而产生的一种语义知识组织和服务的方…

配电网变压器容量选择与变损计算方法及python简易实现

1. 配电网变压器容量选择方法 1.1. 配电网变压器容量选择方法 在选择变压器容量时&#xff0c;需要考虑的最大因素是负荷的峰值&#xff08;或称为最大需求&#xff09;&#xff0c;同时也要考虑变压器的效率、预期负载系数&#xff08;负载占额定容量的比例&#xff09;、以…

Wireshark明文抓取

目录 原理 配置 1、配置环境变量 2、Wireshark配置 原理 SSLKEYLOGFILE是一个用于记录SSL/TLS会话中使用的密钥的文件。它主要用于调试和分析SSL/TLS协议。当启用了SSLKEYLOGFILE配置&#xff0c;系统会将所有SSL/TLS会话中使用的密钥记录到指定的文件中。这些密钥可以用来…

【第10章】spring-mvc转发和重定向

文章目录 前言一、准备二、转发1. 视图解析器(推荐)2. 关键字(forward)3. request 三、重定向1.关键字(redirect)2. HttpServletResponse 四、区别总结 前言 前面介绍了视图解析器的使用,但是对我们原有转发和重定向有影响,接下来我们通过案例,来使用学习转发和重定向的用法。…

MySQL基础_5.多表查询

文章目录 一、多表连接1.1、笛卡尔积&#xff08;或交叉连接&#xff09; 二、多表查询&#xff08;SQL99语法&#xff09;2.1、内连接(INNER JOIN)2.2、内连接(INNER JOIN) 一、多表连接 多表查询&#xff0c;也称为关联查询&#xff0c;指两个或更多个表一起完成查询操作。 …