首页 > 编程知识 正文

spring管理mybatis(spring boot 生成平台)

时间:2023-05-05 10:03:55 阅读:92018 作者:3619

[来看看]夸奖一下再看,养成习惯。

简介

mybatis-plus的自动代码生成有很多方式,这里介绍一下我使用的两种:

本地代码生成: Mybatis-Plus官方在线代码生成:第三方听说Idea也有自动生成的插件,但还没有去看。 我觉得这两个人足够了。 (但是,有一天我使用了插件,注意到了柳暗花明先生。 )

在自己的项目中,可以编写Java程序,配置各种参数,启动后自动生成

此方法的优点是直接在本地项目中生成,无需手动复制和粘贴

缺点是刚开始的配置很多(但是,会一下子逃走) )。

那么,访问下面代码的好消息是下面的代码附有注释。 另一个好消息是,生成的代码也带有注释。 特别是entity类的字段注释非常有用。 设置pom.xml

! -- mybatis-plus代码生成器-

从属关系

groupIdcom.baomidou/groupId

artifactidmybatis-plus -生成器/工件id

版本3.4.0 /版本

/从属关系

! 适用于mybatis-plus代码生成器的-- velocity模板引擎-

从属关系

groupid org.Apache.velocity/groupid

体系结构-引擎-核心/体系结构id

版本2.3 /版本

/从属关系

! ---用于-- lombok自动生成-

从属关系

groupid org .项目lombok/groupid

artifactIdlombok/artifactId标识

版本1.18.16 /版本

/dependency2.自动生成代码的Java主程序

//示例显示,运行main方法控制台,输入模块表的名称并返回,然后在相应的项目目录中自动生成

公共类生成代码{

//*

* *

* *读取控制台的内容

* /p

*/

publicstaticstringscanner (字符串) {

sanner scanner=新scanner (系统. in;

stringbuilder帮助=新stringbuilder (;

help.append ('请输入' tip ':';

系统输出打印(帮助字符串);

if(Scanner.Hasnext () ) ) )。

String ipt=scanner.next (;

if (字符串实用程序. is not空白(ipt ) )

返回ipt;

}

}

throw new MybatisPlusException ('请输入正确的' tip '!' );

}

publicstaticvoidmain (字符串[ ]数组) {

//代码生成器

autogeneratormpg=newautogenerator (;

//1 .全球配置

全球配置GC=新全球配置(;

//项目路线

stringprojectpath=system.getproperty (用户目录);

//生成代码的输出目录:通常是这样。 这里不需要具体写在哪个包里。 因为要在下面分别配置软件包名称

设置输出数据(项目路径'/src /主/Java ' );

//生成代码的author

设定自动机(Javalover );

// 生成代码后,是否自动打开生成的目录:这里我们不需要,因为就是生成到当前项目 gc.setOpen(false); // 设置全局配置 mpg.setGlobalConfig(gc); // 2. 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://localhost:3306/guns?autoReconnect=true&useUnicode=true&hdsdhlg=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&nullCatalogMeansCurrent=true"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("root"); mpg.setDataSource(dsc); // 3. 包配置 PackageConfig pc = new PackageConfig(); // 设置包名:和上面的输出目录进行拼接(ourDir+parent) pc.setParent("cn.stylefeng.guns.modular.business"); // 检测命令行输入的模块名:和上面的包名进行拼接(outDir+parent+moduleName),生成代码都会放到这个模块下 pc.setModuleName(scanner("模块名")); mpg.setPackageInfo(pc); // 4. 策略配置 StrategyConfig strategy = new StrategyConfig(); // 自动生成 实体类的命名:数据库映射到实体类,下划线转驼峰 strategy.setNaming(NamingStrategy.underline_to_camel); // 这里如果不设置,会跟随上面实体类的命名设置 strategy.setColumnNaming(NamingStrategy.underline_to_camel); // 字段注解:这里我们把表字段的注解打开,比如@TableField("car_name") strategy.setEntityTableFieldAnnotationEnable(true); // 实体类的父类:如果有就配置,记得加包名 strategy.setSuperEntityClass("cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity"); // 映射类的父类:如果有就配置,记得加包名 strategy.setSuperMapperClass("com.baomidou.mybatisplus.core.mapper.BaseMapper"); // 服务接口的父类:如果有就配置,记得加包名 strategy.setSuperServiceClass("com.baomidou.mybatisplus.extension.service.IService"); // 服务实现类的父类:如果有就配置,记得加包名 strategy.setSuperServiceImplClass("com.baomidou.mybatisplus.extension.service.impl.ServiceImpl"); // 控制器类的父类:如果有就配置,记得加包名 // strategy.setSuperControllerClass(""); // lombok:是否开启Lombok的注解,比如@Data,@EqualsAndHashCode(callSuper = true) strategy.setEntityLombokModel(true); // 控制器的@RestController注解:是否开启,不开启则默认为@Controller strategy.setRestControllerStyle(true); // 监测命令行的输入:表名 strategy.setInclude(scanner("表名,多个英文逗号分割").split(",")); // 控制器的请求映射url风格:驼峰转连字符,比如"carList"-> "car-list" strategy.setControllerMappingHyphenStyle(true); // 设置表的前缀:设置后,生成的类名和Controller的请求映射中就不会包含表前缀 // 设置后为 @RequestMapping("/gps/car"),而不是@RequestMapping("/gps/gps-car") // 类名同理 strategy.setTablePrefix("gps"); mpg.setStrategy(strategy); // 5. 配置模板引擎 // 默认采用velocity模板 // mpg.setTemplateEngine(new VelocityTemplateEngine()); mpg.execute(); } }

启动程序,在命令行依次输入包名,表名,等待运行完成就可以了

生成后的目录结构如下:

可以看到,基本的框架都有了

下面我们看下生成的entity文件:Car.java

/** * <p> * 车辆管理 * </p> * * @author javalover * @since 2021-04-22 */ @Data @EqualsAndHashCode(callSuper = true) @TableName("gps_car") public class Car extends BaseEntity { private static final long serialVersionUID = 1L; /** * 车辆id */ @TableId("car_id") private Long carId; /** * 所属公司id */ @TableField("company_id") private Long companyId; /** * 车辆名称 */ @TableField("car_name") private String carName; /** * 车辆种类 */ @TableField("car_type") private Integer carType; /** * 车辆颜色 */ @TableField("car_color") private String carColor; /** * 司机 */ @TableField("car_driver") private String carDriver; /** * 车辆价格 */ @TableField("car_price") private BigDecimal carPrice; /** * 油耗 */ @TableField("fuel_consumption") private BigDecimal fuelConsumption; /** * 车牌号 */ @TableField("car_number") private String carNumber; /** * 车架号 */ @TableField("frame_number") private String frameNumber; /** * 载重 */ @TableField("load_weight") private BigDecimal loadWeight; /** * 车照片 */ @TableField("car_img") private String carImg; /** * 车辆实时定位 */ @TableField("car_location") private String carLocation; }

在线代码生成就是在第三方的网站,配置各种参数,点击生成就可以了,然后下载到本地。这种方法的好处是,前期不用太多配置,使用方便缺点就是:

需要在线配置一个小型的数据库,上传SQL语句生成后,需要拉到本地项目中不够灵活,比如父类的配置等其实它的缺点就是因为它的简单导致的,这种就比较适合新的项目,想要快速上手体验的朋友,因为在线的操作很简单,这里给出链接,具体操作大家体验下就知道了在线链接: https://gen.stylefeng.cn/#/createCode

总结

自动生成代码的方式有很多,而这里的只是冰山一角

角1:基于Mybatis-Plus官网的例子(灵活,功能全)

角2:基于第三方的在线生成(简单,上手快)

后记:最后说一句感谢大家的观看谢谢(求关注,别白嫖我)

如果这篇文章对您有所帮助,或者有所启发的话,帮忙关注一下,您的支持是我坚持写作最大的动力。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。