这篇文章主要介绍了Mybatis-Plus 全局配置无效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
全局配置无效
依赖
com.baomidou mybatis-plus-boot-starter 3.1.0
配置文件修改
mybatis-plus: mapper-locations: classpath:mapper/*.xml #实体扫描,多个package用逗号或者分号分隔 typeAliasesPackage: com.hz.waste.entity.model global-config: #id-type: 3 #这种配置是不生效的 #field-strategy: 2 #这种配置是不生效的 db-config: #主键类型 AUTO:"数据库ID自增" INPUT:"用户输入ID",ID_WORKER:"全局唯一ID (数字类型唯一ID)", UUID:"全局唯一ID UUID"; id-type: ID_WORKER #改为这种可以 #字段策略 IGNORED:"忽略判断" NOT_NULL:"非 NULL 判断") NOT_EMPTY:"非空判断" field-strategy: NOT_EMPTY #改为这种可以 configuration: map-underscore-to-camel-case: true cache-enabled: false #配置JdbcTypeForNull jdbc-type-for-null: 'null' call-setters-on-nulls: true #打印语句 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
Mybatis-plus简单配置及应用
mybatis-plus是由中国大神写的mybatis增强版,可以自动生成代码。
配置过程比较简单。首先引入两个maven依赖
com.baomidou mybatis-plus 2.0.6 org.apache.velocity velocity 1.7
一个是mybatis-plus,另一个是它自动成成代码所依赖的模板引擎velocity。
然后将mybatis的sqlSeassionFactoryBean替换成plus增强版的,插件可以选择性配置
mybatis-plus全局配置,主要是配置id生成策略,依赖数据库类型,
生成代码
public class MpGenerator { /** ** MySQL 生成演示 *
*/ 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条件构造
EntityWrapperew = 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();
以上为个人经验,希望能给大家一个参考,也希望大家多多支持0133技术站。
以上就是Mybatis-Plus 全局配置无效的解决方案的详细内容,更多请关注0133技术站其它相关文章!