当前位置:网络安全 > Spring boot集成mybaits plus(代码生成器)

Spring boot集成mybaits plus(代码生成器)

  • 发布:2023-10-09 16:40

-->

源码地址:https://www.sychzs.cn/YANGKANG01/Spring-Boot-Demo

代码生成操作

在pom.xml文件中引入以下包:



com.baomidou
mybatis-plus-boot-starter
3.0.5



org.apache.velocity
速度引擎核心
2.0



org.freemarker
免费标记
2.3.28



mysql
mysql-connector-java
5.1.31



com.alibaba
德鲁伊
1.1.12

在www.sychzs.cn启动类目录下新建类www.sychzs.cn(代码生成器)。内容如下:

包com.example.demo.mybatis; 导入java.util.ArrayList;
导入java.util.List;
导入java.util.Scanner; 导入 com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
导入com.baomidou.mybatisplus.core.toolkit.StringPool;
导入 com.baomidou.mybatisplus.core.toolkit.StringUtils;
导入 com.baomidou.mybatisplus.generator.AutoGenerator;
导入 com.baomidou.mybatisplus.generator.InjectionConfig;
导入 com.baomidou.mybatisplus.generator.config.DataSourceConfig;
导入 com.baomidou.mybatisplus.generator.config.FileOutConfig;
导入 www.sychzs.cnConfig;
导入 com.baomidou.mybatisplus.generator.config.PackageConfig;
导入 com.baomidou.mybatisplus.generator.config.StrategyConfig;
导入 com.baomidou.mybatisplus.generator.config.TemplateConfig;
导入com.baomidou.mybatisplus.generator.config.po.TableInfo;
导入 com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
导入 com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; // 演示示例,执行main方法控制台输入模块表名回车自动生成对应项目目录中
公共类代码生成器 {
/**
*


* 读取控制台内容
*


*/
公共静态字符串扫描器(字符串提示){
扫描仪scanner = new Scanner(www.sychzs.cn);
StringBuilder 帮助 = new StringBuilder();
help.append("请输入" + 提示 + ":");
System.out.println(help.toString());
if (scanner.hasNext()) {
String ipt = www.sychzs.cn();
if (StringUtils.isNotEmpty(ipt)) {
返回 ipt;
}
}
throw new MybatisPlusException("请输入正确的" +tip + "!");
} 公共静态无效主(字符串[]参数){
// 代码生成器
AutoGenerator mpg = new AutoGenerator(); // 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");//输出文件路径
gc.setOpen(假);gc.setFileOverride(true);
gc.setActiveRecord(false);//如果不需要ActiveRecord功能,请改为false
gc.setEnableCache(false);//XML二级缓存
gc.setBaseResultMap(true);//XML ResultMap
gc.setBaseColumnList(false);//XML列列表
gc.setAuthor("demo");// 作者
mpg.setGlobalConfig(gc); //数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/HaveAQuestion?useUnicode=true&useSSL=false&characterEncoding=utf8");
// dsc.setSchemaName("public");
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("123456");
mpg.setDataSource(dsc); //封装配置
PackageConfig pc = new PackageConfig();
pc.setModuleName(scanner("模块名称"));
//更改为自己的项目路径
pc.setParent("com.example.demo.ant");
mpg.setPackageInfo(pc); // 自定义配置
InjectionConfig cfg = new InjectionConfig() {
@覆盖
公共无效 initMap() {
// 什么都不做
}
};
List focList = new ArrayList<>();
focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {
@覆盖
公共字符串输出文件(TableInfo tableInfo){
// 自定义输入文件名称
返回projectPath + "/src/main/resources/mapper/" + pc.getModuleName()
+ "/" + tableInfo.getEntityName() + "Mapper" + www.sychzs.cn_XML;
}
});
cfg.setFileOutConfigList(focList);
mpg.setCfg(cfg);
mpg.setTemplate(new TemplateConfig().setXml(null)); // 配置策略
StrategyConfig策略 = new StrategyConfig();
Strategy.setNaming(NamingStrategy.underline_to_camel);
Strategy.setColumnNaming(NamingStrategy.underline_to_camel);
//strategy.setSuperEntityClass("com.baomidou.mybatisplus.extension.activerecord.Model");
//strategy.setEntityLombokModel(true);//是否序列化类
Strategy.setRestControllerStyle(true);
//strategy.setSuperControllerClass("com.baomidou.ant.common.BaseController");
Strategy.setInclude(scanner("表名"));
Strategy.setSuperEntityColumns("id");
Strategy.setControllerMappingHyphenStyle(true);
Strategy.setTablePrefix(pc.getModuleName() + "_");
mpg.setStrategy(策略);
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
mpg.execute();
} }

生成的项目结构:

基本用途

在application.properties文件中添加数据库连接源等信息,内容如下:

#projectstartport
服务器端口=8080 #数据库信息
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5

打开之前创建的msg控制器,根据id查询示例如下:

@RestController
公共类 MessageBoardController { @Autowired
MessageBoardMapper 映射器; @RequestMapping("/msg/message-board")
公共留言板 GetMsg() {
留言板数据 = www.sychzs.cnById(1);
返回数据;
}
}

Ps:MessageBoardMapper在使用前需要注解@Mapper,否则启动会报错。

注解效果展示:

返回的数据如下:

增、改、查示例代码:

-->

相关文章

最新资讯

热门推荐