storeroomP4自动生成代码

该篇文章介绍了如何使用MybatisPlus的代码生成器,通过配置数据源、模块、模板和策略,用户可以方便地根据数据库表结构自动生成对应的实体类、Mapper接口及XML文件,简化开发过程。
摘要由CSDN通过智能技术生成

使用mybatisplus的代码生成器
对应位置填上文件路径,连接好数据库
就可以根据数据表直接生成对应实体类和mapper文件和XML文件

package com.zzl.mystoreroom.common;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class CodeGenerator {
    /**
     * <p>
     * 读取控制台内容
     * </p>
     */
    public static String scanner(String tip) {
        Scanner scanner = new Scanner(System.in);
        StringBuilder help = new StringBuilder();
        help.append("请输⼊" + tip + ": ");
        System.out.println(help.toString());
        if (scanner.hasNext()) {
            String ipt = scanner.next();if (StringUtils.isNotBlank(ipt)) {
                return ipt;
            }
        }
        throw new MybatisPlusException("请输⼊正确的" + tip + "! ");
    }
    /**
     * 操作步骤:
     * 1.修改数据源包括地址密码信息,对应代码标记:⼀、 下同
     * 2.模块配置,可以修改包名
     * 3.修改模板(这步可忽略)
     * @param args
     */
    public static void main(String[] args) {
// 代码⽣成器
        AutoGenerator mpg = new AutoGenerator();
// 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir")+"/mystoreroom";
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("wms");
        gc.setOpen(false);
        gc.setSwagger2(true); //实体属性 Swagger2 注解
        gc.setBaseResultMap(true);// XML ResultMap
        gc.setBaseColumnList(true);// XML columList
//去掉service接⼝⾸字⺟的I, 如DO为User则叫UserService
        gc.setServiceName("%sService");
        mpg.setGlobalConfig(gc);
// 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
// ⼀、修改数据源
        dsc.setUrl("jdbc:mysql://localhost:3306/storeroom? useUnicode=true&characterEncoding=UTF8&useSSL=false");
// dsc.setSchemaName("public");
                dsc.setDriverName("com.mysql.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("root");
        mpg.setDataSource(dsc);
// 包配置
        PackageConfig pc = new PackageConfig();
//pc.setModuleName(scanner("模块名"));
// ⼆、模块配置
        pc.setParent("com.zzl.mystoreroom")
                .setEntity("entity")
                .setMapper("mapper").setService("service")
                .setServiceImpl("service.impl")
                .setController("controller");
        mpg.setPackageInfo(pc);
// ⾃定义配置
        InjectionConfig cfg = new InjectionConfig() {
            @Override
            public void initMap() {
// to do nothing
            }
        };
// 如果模板引擎是 freemarker
        String templatePath = "templates/mapper.xml.ftl";
// 如果模板引擎是 velocity
// String templatePath = "/templates/mapper.xml.vm";
// ⾃定义输出配置
        List<FileOutConfig> focList = new ArrayList<>();
// ⾃定义配置会被优先输出
        focList.add(new FileOutConfig(templatePath) {
            @Override
            public String outputFile(TableInfo tableInfo) {
// ⾃定义输出⽂件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发⽣变化!!
                return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()
                        + "/" + tableInfo.getEntityName() + "Mapper" +
                        StringPool.DOT_XML;
            }
        });
/*
cfg.setFileCreate(new IFileCreate() {
@Override
public boolean isCreate(ConfigBuilder configBuilder, FileType fileType,
String filePath) {
// 判断⾃定义⽂件夹是否需要创建
checkDir("调⽤默认⽅法创建的⽬录,⾃定义⽬录⽤");
if (fileType == FileType.MAPPER) {
// 已经⽣成 mapper ⽂件判断存在,不想重新⽣成返回 false
return !new File(filePath).exists();
}
// 允许⽣成模板⽂件
return true;
}
});
*/
        cfg.setFileOutConfigList(focList);
        mpg.setCfg(cfg);
        //3. ⽣成代码并测试 四、实现增删改查
// 配置模板
        TemplateConfig templateConfig = new TemplateConfig();
// 配置⾃定义输出模板
//指定⾃定义模板路径,注意不要带上.ftl/.vm, 会根据使⽤的模板引擎⾃动识别
// 三、修改模板
/*templateConfig.setEntity("templates/entity2.java");
templateConfig.setService("templates/service2.java");
templateConfig.setController("templates/controller2.java");
templateConfig.setMapper("templates/mapper2.java");
templateConfig.setServiceImpl("templates/serviceimpl2.java");*/

        templateConfig.setXml(null);
        mpg.setTemplate(templateConfig);
// 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// strategy.setSuperEntityClass("你⾃⼰的⽗类实体,没有就不⽤设置!");
//strategy.setSuperEntityClass("BaseEntity");
        strategy.setEntityLombokModel(true);
        strategy.setRestControllerStyle(true);
// 公共⽗类
//strategy.setSuperControllerClass("BaseController");
// strategy.setSuperControllerClass("你⾃⼰的⽗类控制器,没有就不⽤设置!");
// 写于⽗类中的公共字段
// strategy.setSuperEntityColumns("id");
        strategy.setInclude(scanner("表名,多个英⽂逗号分割").split(","));
        strategy.setControllerMappingHyphenStyle(true);
//strategy.setTablePrefix(pc.getModuleName() + "_");
// 忽略表前缀tb_,⽐如说tb_user,直接映射成user对象
// 四、注意是否要去掉表前缀
//strategy.setTablePrefix("tb_");
        mpg.setStrategy(strategy);
        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
        mpg.execute();
    }
}

启动这个CodeGenerator输入对应放表名就可以自动生成代码

但是生产的UserMapper记得加@Mapper注解
如果继承BaseMapper那么改一些注释部分就行了

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测试面试题软件测
轻型卡车零部件销售平台是一个专门针对轻型卡车用户和维修服务商设计的电子商务系统,旨在提供一个便捷、高效的在线购买渠道,用于获取各种卡车零部件和配件。该平台通过整合供应链、优化库存管理和提供卓越的客户服务,为轻型卡车的维护和修理提供支持。以下是该平台可能包含的一些关键特性: 1. **产品目录**:提供一个全面的在线目录,展示各种轻型卡车的零部件,包括发动机部件、悬挂系统、电子设备、车身零件等。 2. **品牌和型号筛选**:允许用户根据品牌、型号、年份和其他规格筛选零部件,确保用户能够快速找到适配其车辆的配件。 3. **库存管理**:实时更新库存状态,确保用户能够看到最新的产品可用性,并在缺货时提供预计到货时间。 4. **在线订购**:用户可以通过安全的在线支付系统轻松下单购买所需零部件,支持多种支付方式。 5. **价格和促销**:提供有竞争力的价格和定期促销活动,包括折扣、优惠券和捆绑销售,以吸引和保留客户。 6. **用户评价和反馈**:允许用户对购买的产品进行评价和提供反馈,帮助其他用户做出购买决策。 7. **快速配送**:与物流服务提供商合作,确保订单能够快速、准确地配送到客户手中。 8. **售后服务**:提供客户支持服务,解答用户关于产品和订单的问题,并处理退换货事宜。 9. **技术支持**:提供在线技术支持,帮助用户解决安装和使用零部件时遇到的技术问题。 10. **移动应用**:开发移动应用程序,让用户能够通过智能手机或平板电脑随时随地访问平台和进行购买。 11. **B2B功能**:为商业客户提供批量购买选项、账户管理和定制报价服务。 12. **数据分析**:利用数据分析工具来优化销售策略,提高用户满意度,并增强用户体验。 轻型卡车零部件销售平台通过提供一站式的购物体验,帮助用户节省时间和金钱,同时确保他们能够获得高质量的产品和服务。随着电子商务的不断进步和物流网络的扩展,这样的平台在提供便利性、选择性和可靠性方面发挥着越来越重要的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值