项目
博客
文档
归档
资源链接
关于我
项目
博客
文档
归档
资源链接
关于我
03| 代码自动化生成器Mybatis-plus-generator
2024-07-29
·
·
原创
·
·
本文共 422个字,预计阅读需要 2分钟。
#### 生成器代码 依赖包 ```xml
mysql
mysql-connector-java
com.baomidou
mybatis-plus-generator
3.4.1
org.apache.velocity
velocity-engine-core
2.0
``` 路径:`nla-common\src\test\java\tools\Mybatis-plus-generator.java` ```java public class MyBatisPlusGenerator { public static void main(String[] args) { //1. 全局配置 GlobalConfig config = new GlobalConfig(); // 是否⽀持AR模式 config.setActiveRecord(true) // 作者 .setAuthor("YJs") // ⽣成路径,最好使⽤绝对路径,window路径是不⼀样的 .setOutputDir("nla-shop/nla-user-service/src/main/java") // ⽂件覆盖 .setFileOverride(true) // 主键策略 .setIdType(IdType.AUTO) .setDateType(DateType.ONLY_DATE) // 设置⽣成的service接⼝的名字的⾸字⺟是否为I,默认Service是以I开头的 .setServiceName("%sService") //实体类结尾名称 .setEntityName("%sEntity") //⽣成基本的resultMap .setBaseResultMap(true) //不使⽤AR模式 .setActiveRecord(false) //⽣成基本的SQL⽚段 .setBaseColumnList(true); //2. 数据源配置 DataSourceConfig dsConfig = new DataSourceConfig(); // 设置数据库类型 dsConfig.setDbType(DbType.MYSQL) .setDriverName("com.mysql.cj.jdbc.Driver") .setUrl("jdbc:mysql://127.0.0.1:3306/p_nla_user?useSSL=false") .setUsername("root") .setPassword("123456"); //3. 策略配置globalConfiguration中 StrategyConfig stConfig = new StrategyConfig(); //全局⼤写命名 stConfig.setCapitalMode(true) // 数据库表映射到实体的命名策略 .setNaming(NamingStrategy.underline_to_camel) //使⽤lombok .setEntityLombokModel(true) //使⽤restcontroller注解 .setRestControllerStyle(true) // ⽣成的表, ⽀持多表⼀起⽣成,以数组形式填写 .setInclude("user","address"); //4. 包名策略配置 PackageConfig pkConfig = new PackageConfig(); pkConfig.setParent("cn.nla.user") .setMapper("mapper") .setService("service") .setController("controller") .setEntity("model.entity") .setXml("mapper"); //5. 整合配置 AutoGenerator ag = new AutoGenerator(); ag.setGlobalConfig(config) .setDataSource(dsConfig) .setStrategy(stConfig) .setPackageInfo(pkConfig); //6. 执⾏操作 ag.execute(); System.out.println("======= NLA-Paas MyBatisPlusGenerator相关代码⽣成完毕 ========"); } } ``` #### 各个层级约束规范 - Service/DAO层方法命名规约 - 获取单个对象的方法用get做前缀。 - 获取多个对象的方法用list做前缀,复数形式结尾。如:listObjects。 - 获取统计值的方法用count做前缀。 - 插⼊的方法用save/insert做前缀。 - 删除的方法用remove/delete做前缀。 - 修改的方法用update做前缀。 - 领域模型命名规约 - 数据对象:xxxDO,xxx即为数据表名。 - ⼀般数据传输对象:xxxDTO,xxx为业务领域相关的名称,项目里面也用VO。 - 展示对象:xxxVO,也就是响应给前端的实体包装类。 - 接收前端json对象请求的命名为 XXXRequest #### 用户微服务开发 配置文件 ```yml server: port: 9001 spring: application: name: nla-user-service #数据库配置 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/p_nla_user?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai username: root password: 123456 #配置plus打印sql⽇志 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #设置⽇志级别,ERROR/WARN/INFO/DEBUG,默认是INFO以上才显示 logging: level: root: INFO ``` 启动类注解 ```java @SpringBootApplication @MapperScan("cn.nla.*.mapper") @ComponentScan(basePackages = {"cn.nla.*"}) public class UserApplication { public static void main(String[] args) { SpringApplication.run(UserApplication.class, args); } } ``` 查询地址详情接口 设置环境:开发,测试,预发布,线上