👩🏽💻个人主页:阿木木AEcru
🔥 系列专栏:《Docker容器化部署系列》 《Java每日面筋》
💹每一次技术突破,都是对自我能力的挑战和超越。
目录
- 一、前言
- 三层架构的流程图
- 为什么使用三层架构?
- 二、效果图
- 三、Maven依赖
- 四、核心代码
一、前言
三层架构是一种将应用程序分为三个主要逻辑层的设计模式,旨在实现解耦、提高可维护性和可扩展性。这三个层分别是:
- 表示层(Presentation Layer):负责处理用户界面和展示数据,接收用户输入并将其转发到业务逻辑层处理。
- 业务逻辑层(Business Logic Layer):包含应用程序的业务规则和工作流程,处理表示层的请求并调用数据访问层进行数据操作。
- 数据访问层(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();}}}
直接执行生成即可,是不是很简单? 你可以尝试一下,免去了不少创建类的时间。
感谢观看至此,希望该文章能够帮助到您提升知识和技能。如果您喜欢我的内容,请不要忘记点赞和分享哦!👍