Mybatis-Plus 全局配置无效的解决方案

这篇文章主要介绍了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条件构造

        EntityWrapper 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();

以上为个人经验,希望能给大家一个参考,也希望大家多多支持0133技术站。

以上就是Mybatis-Plus 全局配置无效的解决方案的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java