博客
关于我
MyBatisPlus根据数据库自动生成后台包及代码逻辑
阅读量:565 次
发布时间:2019-03-09

本文共 3575 字,大约阅读时间需要 11 分钟。

MySQL数据库配置与MyBatis Plus代码生成器设置说明

掌握数据库配置和代码生成器设置是开发工作中的关键环节。本文将详细介绍MySQL数据库配置以及MyBatis Plus代码生成器的核心设置,帮助开发人员快速上手。

代码生成路径设置

代码生成的路径是开发过程中常用到的重要功能。通过配置生成路径,你可以指定生成文件的存储位置。本项目中,代码生成路径设置为:

gc.setOutputDir(path + "/src/main/java");

其中 path 动态获取当前项目路径,这样无论你在何种开发环境下运行,都能自动调整生成目录。这种方式保证了代码生成的灵活性和适用性。


数据库参数配置

数据库配置是连接和管理数据源的基础。在本项目中,我们采用MySQL数据库,具体配置如下:

DataSourceConfig dc = new DataSourceConfig();dc.setUrl("jdbc:mysql://127.0.0.1:3306/02-tingyu?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai");dc.setDriverName("com.mysql.jdbc.Driver");dc.setUsername("root");dc.setPassword("123456");

这些配置项涵盖了数据库的连接信息和版本参数,每项参数都需谨慎填写,确保与你的数据库环境一致。此外,注专门的注释可以帮助你快速定位和修改。


包结构设置

包结构的配置关系到代码生成的命名空间和组织方式。在本项目中,包结构设置为:

PackageConfig pc = new PackageConfig();pc.setParent("com.huletian")  .setMapper("mapper")  .setService("service")  .setController("controller")  .setEntity("pojo")  .setXml("mapper");

这种配置方式清晰地定义了代码生成的命名空间,确保每类文件生成到正确的包下,避免命名冲突和分类错误。


实体类生成格式设置

选择合适的实体类生成格式可以提高代码质量和效率。本项目默认采用Lombok格式,并通过以下配置:

StrategyConfig sc = new StrategyConfig();sc.setEntityLombokModel(true);  // 选择Lombok格式sc.setNaming(NamingStrategy.underline_to_camel);  // 数据库命名转换策略sc.setTablePrefix("t_");  // 表命名前置

这种设置能将数据库中的表名自动转换为符合Java命名规范的类名,同时减少重复代码。


数据库表识别设置

在代码生成器中,除了上述设置,你还需要指定需要处理的数据库表。这些表悉由以下配置控制:

sc.setInclude(    "t_admin",     "t_admin_role",    "t_company",    "t_host",    "t_host_power",    "t_married_person",    "t_menu",    "t_order",    "t_planner",    "t_role",    "t_role_menu");

这一步骤能确保代码生成器只针对相关表进行处理,规避不必要的干扰。


动态获取项目路径

为了实现跨环境的代码生成,项目路径的动态获取至关重要。以下代码实现这一特性:

GlobalConfig gc = new GlobalConfig();String path = System.getProperty("user.dir");gc.setFileOverride(false);gc.setActiveRecord(true);gc.setEnableCache(false); // ... 其他配置gc.setOutputDir(path + "/src/main/java");

这个动态获取机制让你的代码生成更加灵活,无论你在何种开发环境下运行,都能顺利生成代码。


完整代码配置示例

将以上配置聚合到一个完整的代码示例中,确保每个配置项都能顺利运行:

public class CodeGeneratorConfig {    // 创建代码生成器对象    AutoGenerator auto = new AutoGenerator();    // 全局配置    GlobalConfig gc = new GlobalConfig();    String path = System.getProperty("user.dir");    System.out.println(path);    gc.setFileOverride(false);    gc.setActiveRecord(true);    gc.setEnableCache(false);    gc.setBaseResultMap(true);    gc.setBaseColumnList(true);    gc.setOutputDir(path + "/src/main/java");    // 数据库配置    DataSourceConfig dc = new DataSourceConfig();    dc.setUrl("jdbc:mysql://127.0.0.1:3306/02-tingyu?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai");    dc.setDriverName("com.mysql.jdbc.Driver");    dc.setUsername("root");    dc.setPassword("123456");    // 包结构配置    PackageConfig pc = new PackageConfig();    pc.setParent("com.huletian")        .setMapper("mapper")        .setService("service")        .setController("controller")        .setEntity("pojo")        .setXml("mapper");    // 代码生成策略    StrategyConfig sc = new StrategyConfig();    sc.setCapitalMode(true)      .setEntityLombokModel(true)      .setNaming(NamingStrategy.underline_to_camel)      .setTablePrefix("t_")      .setInclude("t_admin", "t_admin_role", "t_company",                  "t_host", "t_host_power", "t_married_person",                  "t_menu", "t_order", "t_planner", "t_role",                  "t_role_menu");    // 将各配置注入到代码生成器对象中    auto.setGlobalConfig(gc);    auto.setDataSource(dc);    auto.setPackageInfo(pc);    auto.setStrategy(sc);    // 执行代码生成    auto.execute();    System.out.println("代码生成成功");}

使用指南

将上述代码粘贴到你的测试类中即可运行(注意确保MyBatis-Plus相关依赖已添加到项目依赖中)。代码将根据你提供的配置 automatedly 生成所需的POJO、Mapper接口与服务类。


以上配置方案既简洁清晰,又兼顾了实用性和扩展性,希望对你的数据库开发有所帮助!

转载地址:http://rktpz.baihongyu.com/

你可能感兴趣的文章
nodejs 开发websocket 笔记
查看>>
nodejs 的 Buffer 详解
查看>>
NodeJS 的环境变量: 开发环境vs生产环境
查看>>
nodejs 读取xlsx文件内容
查看>>
nodejs 运行CMD命令
查看>>
Nodejs+Express+Mysql实现简单用户管理增删改查
查看>>
nodejs+nginx获取真实ip
查看>>
nodejs-mime类型
查看>>
NodeJs——(11)控制权转移next
查看>>
NodeJS、NPM安装配置步骤(windows版本)
查看>>
NodeJS、NPM安装配置步骤(windows版本)
查看>>
nodejs下的express安装
查看>>
nodejs与javascript中的aes加密
查看>>
nodejs中Express 路由统一设置缓存的小技巧
查看>>
nodejs中express的使用
查看>>
Nodejs中搭建一个静态Web服务器,通过读取文件获取响应类型
查看>>
Nodejs中的fs模块的使用
查看>>
NodeJS使用淘宝npm镜像站的各种姿势
查看>>
NodeJs入门知识
查看>>
nodejs包管理工具对比:npm、Yarn、cnpm、npx
查看>>