近日见闻
- Protect AI一手打造了开源软件(OSS)漏洞赏金平台Huntr,如今,这家公司更进一步,按Apache 2.0许可条款开源其三款AI/ML安全工具。NB Defense、ModelScan、Rebuff。 --https://github.com/protectai/nbdefense
- EA 悄悄地搞了个大事件,把《命令与征服》系列中的 2 个游戏的部分源码开源了!这两个游戏分别是:Tiberian Dawn(泰伯利亚的黎明) 和 Red Alert(红色警戒)。--https://github.com/electronicarts/CnC_Remastered_Collection
- 10月26日11时14分,搭载神舟十七号载人飞船的长征二号F遥十七运载火箭在酒泉卫星发射中心点火发射,约10分钟后,神舟十七号载人飞船与火箭成功分离,进入预定轨道,航天员乘组状态良好,发射取得圆满成功。--新闻
MyBatis-Plus代码生成器
MyBatis-Plus 官方文档:
https://baomidou.com/
- 前提条件: 准备测试数据库、创建一个springboot项目
- 在 pom.xml 中导入相关依赖
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.4</version>
</dependency>
<!--mybatis-plus-generator 生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.4</version>
</dependency>
- 编写一个mian方法,加上框架
public static void main(String[] args) {
//1、配置数据源
FastAutoGenerator.create("url", "username", "password")
//2、全局配置
.globalConfig(...)
//3、包配置
.packageConfig(...)
//4、策略配置
.strategyConfig(...)
//5、模板引擎配置
.templateEngine(...)
//6、执行
.execute();
}
- 附:快速生成样例代码
public static void main(String[] args) {
//1、配置数据源
FastAutoGenerator.create("jdbc:mysql://localhost:3306/aops?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT+8", "root", "123456")
//2、全局配置
.globalConfig(builder -> {
builder.author("cillian") // 设置作者名
.outputDir(System.getProperty("user.dir") "/src/main/java") //设置输出路径:项目的 java 目录下
.commentDate("yyyy-MM-dd hh:mm:ss") //注释日期
.dateType(DateType.ONLY_DATE) //定义生成的实体类中日期的类型 TIME_PACK=LocalDateTime;ONLY_DATE=Date;
// .fileOverride() //覆盖之前的文件
.enableSwagger() //开启 swagger 模式
.disableOpenDir(); //禁止打开输出目录,默认打开
})
//3、包配置
.packageConfig(builder -> {
builder.parent("website.cillian") // 设置父包名
.moduleName("aops") //设置模块包名
.entity("entity") //pojo 实体类包名
.service("service") //Service 包名
.serviceImpl("serviceImpl") // ***ServiceImpl 包名
.mapper("mapper") //Mapper 包名
.xml("mapper") //Mapper XML 包名
.controller("controller") //Controller 包名
// .other("utils") //自定义文件包名
.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") "/src/main/resources/mapper")); //配置 mapper.xml 路径信息:项目的 resources 目录下
})
//4、策略配置
.strategyConfig(builder -> {
builder.addInclude("user") // 设置需要生成的数据表名
.addTablePrefix("t_", "c_") // 设置过滤表前缀
//4.1、Mapper策略配置
.mapperBuilder()
.superClass(BaseMapper.class) //设置父类
.formatMapperFileName("%sMapper") //格式化 mapper 文件名称
// .enableMapperAnnotation() //开启 @Mapper 注解
.formatXmlFileName("%sXml")//格式化 Xml 文件名称
//4.2、service 策略配置
.serviceBuilder()
.formatServiceFileName("%sService") //格式化 service 接口文件名称,%s进行匹配表名,如 UserService
.formatServiceImplFileName("%sServiceImpl") //格式化 service 实现类文件名称,%s进行匹配表名,如 UserServiceImpl
//4.3、实体类策略配置
.entityBuilder()
.enableLombok() //开启 Lombok
.disableSerialVersionUID() //不实现 Serializable 接口,不生产 SerialVersionUID
.logicDeleteColumnName("deleted") //逻辑删除字段名
.naming(NamingStrategy.underline_to_camel) //数据库表映射到实体的命名策略:下划线转驼峰命
.columnNaming(NamingStrategy.underline_to_camel) //数据库表字段映射到实体的命名策略:下划线转驼峰命
.addTableFills(
new Column("create_time", FieldFill.INSERT),
new Column("modify_time", FieldFill.INSERT_UPDATE)
) //添加表字段填充,"create_time"字段自动填充为插入时间,"modify_time"字段自动填充为插入修改时间
.enableTableFieldAnnotation() // 开启生成实体时生成字段注解
//4.4、Controller策略配置
.controllerBuilder()
.formatFileName("%sController") //格式化 Controller 类文件名称,%s进行匹配表名,如 UserController
.enableRestStyle(); //开启生成 @RestController 控制器
})
//5、模板
.templateEngine(new VelocityTemplateEngine())
/*
.templateEngine(new FreemarkerTemplateEngine())
.templateEngine(new BeetlTemplateEngine())
*/
//6、执行
.execute();
}
报错:
代码语言:javascript复制[main] WARN com.baomidou.mybatisplus.generator.config.GlobalConfig - 全局覆盖已有文件的配置已失效,已迁移到策略配置中
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/velocity/context/Context
at website.cillian.aops.CodeGenerator.main(CodeGenerator.java:43)
Caused by: java.lang.ClassNotFoundException: org.apache.velocity.context.Context
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
添加生成模版引擎即可
代码语言:javascript复制<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>