标签:github ica gen 新项目 生成器 prefix 语句 import 阿里巴巴
记录是为了更好的成长!
mybatisPlus生成工具,这里以spgingBoot构建项目说明
1、引入jar
(如果使用 https://start.spring.io/ 构建springBoot项目只需选 web 和 mysql即可,然后加入下面的依赖到pom文件中)
<!-- 阿里巴巴druid数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency> <!-- mybatisplus与springboot整合 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>2.3</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.1</version> </dependency>
2、java文件
package com; import java.util.ArrayList; import java.util.List; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.InjectionConfig; import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.FileOutConfig; import com.baomidou.mybatisplus.generator.config.GlobalConfig; import com.baomidou.mybatisplus.generator.config.PackageConfig; import com.baomidou.mybatisplus.generator.config.StrategyConfig; import com.baomidou.mybatisplus.generator.config.TemplateConfig; import com.baomidou.mybatisplus.generator.config.po.TableInfo; import com.baomidou.mybatisplus.generator.config.rules.DbType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; /** * <p> * 代码生成器演示 * </p> */ public class MybatisPlusGenerator { public static void main(String[] args) { AutoGenerator mpg = new AutoGenerator();
/*
* 读取数据库配置
*/
String url = "";
String driverName = "";
String userName = "";
String password = "";
Properties properties = new Properties();
try {
properties = PropertiesLoaderUtils.loadAllProperties("application.properties");
url = properties.getProperty("spring.datasource.url");
driverName = properties.getProperty("spring.datasource.driver-class-name");
userName = properties.getProperty("spring.datasource.username");
password = properties.getProperty("spring.datasource.password");
} catch (IOException e) {
e.printStackTrace();
}
/* * 配置路径 */ String projectPath = System.getProperty("user.dir"); //获取项目路径 String objPath = projectPath + "/src/main/java"; //获取java目录 String parentPackage = "com"; //配置包路径 /* * 全局配置 */ GlobalConfig gc = new GlobalConfig(); gc.setOutputDir (objPath); //配置路径 gc.setOpen (false); //是否打开生成的文件夹 gc.setAuthor ("author"); //author /* 自定义文件命名,注意 %s 会自动填充表实体属性! */ gc.setMapperName ("%sMapper"); //设置mapper接口后缀 gc.setServiceName ("%sService"); //设置Service接口后缀 gc.setServiceImplName ("%sServiceImpl"); //设置Service实现类后缀 gc.setControllerName ("%sController"); //设置controller类后缀 gc.setXmlName ("%sMapper"); //设置sql映射文件后缀 gc.setFileOverride(true); // 是否覆盖同名文件,默认是false gc.setActiveRecord(false); // 不需要ActiveRecord特性的请改为false gc.setEnableCache(false); // XML 二级缓存 gc.setBaseResultMap(true); // XML ResultMap gc.setBaseColumnList(false); // XML columList mpg.setGlobalConfig(gc); /* * 数据源配置 */ DataSourceConfig dsc = new DataSourceConfig(); dsc.setDbType(DbType.MYSQL) .setDriverName(driverName) .setUrl(url) .setUsername(userName) .setPassword(password); mpg.setDataSource(dsc); /* * 策略配置 */ StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel) // 表名生成策略 .setRestControllerStyle(true) //设置controller自动加RestController注解 //.setInclude(new String[] {"user"}); //修改替换成你需要的表名,多个表名传数组,如果注释掉就生成库中所有的表 //.setTablePrefix(new String[] { "t_" }) // 此处可以修改为您的表前缀 ; mpg.setStrategy(strategy); // 包配置 PackageConfig packageConfig = new PackageConfig(); packageConfig.setParent(parentPackage) .setController("controller") /*.setService("service") //服务接口 .setServiceImpl("service.impl") //服务实现 .setMapper("mapper") //dao层 .setXml("mapper") //dao层对应的xml文件 .setEntity("entity")*/; //pojo对象 mpg.setPackageInfo(packageConfig); // 自定义配置 InjectionConfig cfg = new InjectionConfig() { @Override public void initMap() { // to do nothing } }; //自定义xml的存放路径 List<FileOutConfig> focList = new ArrayList<>(); focList.add(new FileOutConfig("/templates/mapper.xml.vm") { @Override public String outputFile(TableInfo tableInfo) { // 自定义Mapper.xml文件存放的路径 return projectPath + "/src/main/resources/mappers/" + tableInfo.getEntityName() + "Mapper.xml"; } }); cfg.setFileOutConfigList(focList); mpg.setCfg(cfg); // 关闭默认 xml 生成,调整生成 至 根目录 mpg.setTemplate(new TemplateConfig().setXml(null)); // 执行生成 mpg.execute(); } }
3、运行java文件,刷新项目即可
4、启动springBoot项目需要在启动类加@MapperScan注解,指定mapper的目录
5、生成的项目并不一定满足我们的需要,需要自定义sql查询,直接在生成的mapper接口和mapper映射文件中追加即可
注意: 如果需要自定义sql语句,就必须要在配置文件中指定 mybatis-plus.mapper-locations=classpath:mappers/*.xml 不能写成 mybatis.mapper-locaitons=classpath:mappers/*.xml
github示例: https://github.com/kh5218/DemoForSpringBoot/tree/master/mybatisplus
以上内容代表个人观点,仅供参考,不喜勿喷。。。
标签:github ica gen 新项目 生成器 prefix 语句 import 阿里巴巴
原文地址:https://www.cnblogs.com/newbest/p/10853144.html