👩🏽💻个人主页:阿木木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();
}
}
}
直接执行生成即可,是不是很简单? 你可以尝试一下,免去了不少创建类的时间。
感谢观看至此,希望该文章能够帮助到您提升知识和技能。如果您喜欢我的内容,请不要忘记点赞和分享哦!👍