全局配置无效
依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>
配置文件修改
mybatis-plus:
mapper-locations: classpath:mapper
public static void main(String[] args) {
AutoGenerator mpg = new AutoGenerator();
// 全局配置\\Begin\\src\\main\\java
GlobalConfig gc = new GlobalConfig();
gc.setOutputDir("G:\\workspace");
gc.setFileOverride(true);
gc.setActiveRecord(true);
gc.setEnableCache(false);// XML 二级缓存
gc.setBaseResultMap(true);// XML ResultMap
gc.setBaseColumnList(true);// XML columList
gc.setOpen(false);
gc.setAuthor("XuWei");
// 自定义文件命名,注意 %s 会自动填充表实体属性!
gc.setMapperName("%sDao");
gc.setXmlName("%sMapper");
gc.setServiceName("%sService");
gc.setServiceImplName("%sServiceImpl");
gc.setControllerName("%sController");
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDbType(DbType.MYSQL);
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUrl("jdbc:mysql://localhost:3306/begin?useUnicode=true&characterEncoding=UTF-8&generateSimpleParameterMetadata=true");
dsc.setUsername("root");
dsc.setPassword("123");
mpg.setDataSource(dsc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
// strategy.setCapitalMode(true);// 全局大写命名 ORACLE 注意
strategy.setTablePrefix(new String[] { "t_", "tsys_" });// 此处可以修改为您的表前缀
strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
strategy.setInclude(new String[] { "dept" }); // 需要生成的表
// strategy.setExclude(new String[]{"test"}); // 排除生成的表
mpg.setStrategy(strategy);
//默认是service、serviceImpl、controller都生成。在这里关闭他们
TemplateConfig tc = new TemplateConfig();
tc.setController(null);
mpg.setTemplate(tc);
// 生成文件路径
// PackageConfig pc = new PackageConfig();
// pc.setParent("com.xu");
// pc.setEntity("entity.plus");
// pc.setMapper("dao.plus");
// pc.setXml("mapper.plus");
// pc.setService("service.plus");
// pc.setServiceImpl("service.plus.impl");
// mpg.setPackageInfo(pc);
// 执行生成
mpg.execute();
}
这样代码生成到G:\workspace目录下面
和mybayis generator相比plus生成的代码映射文件xml,和dao层更加干净,通用的CRUD都通过dao类继承的BaseMapper来实现。
但是缺点也很明显,条件构造器不能像generator那样直接将表中的字段名称和pojo映射,所以需要自己写查询条件对应的字段名称。
如果要拼接这样一个查询条件( user_name = ? and password = ? ) or( id = ? and state = ? )
mybatis-plus条件构造
EntityWrapper<User> ew = new EntityWrapper<>();
ew.eq("user_name", "向问天").eq("password", "sde");
ew.orNew("id", 3).eq("state", 2);
mybatis generator条件构造
UserExample userExample = new UserExample();
userExample.createCriteria()
.andUserNameEqualTo("向问天")
.andPasswordEqualTo("sde");
userExample.or()
.andIdEqualTo(3)
.andStateEqualTo(2);
userExample.isDistinct();
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。