java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > springboot中mybatis-plus@Mapper注入失败

springboot项目中mybatis-plus@Mapper注入失败问题

作者:EricFRQ

这篇文章主要介绍了springboot项目中mybatis-plus@Mapper注入失败问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

先排除以下几个原因

如果都不是

请降低mybatis-plus的版本!高版本哈是坑!比如我之前用的3.4.1,要吐了,找了俩小时bug。

可以换下面的这个:

        <!-- mybatis-plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.0.5</version>
        </dependency>

补充几个mybatisplus的小知识点

1.自定义库表不存在的字段

	/**
	 * 子分类(自定义)
	 */
	@TableField(exist = false)
	private List<CategoryEntity> children;

2.逻辑删除的标记注解

(1)、注解标记

	@TableLogic
	private int deleted;// 0-未删除 1-已删除

(2)、3.2.0版本以下的mybatis-plus需要加配置

@Bean
    public ISqlInjector sqlInjector(){
        return new LogicSqlInjector();
    }

(3)、application配置文件加声明

mybatis-plus:
  global-config:
    db-config:
      logic-delete-value: 1
      logic-not-delete-value: 0

3.模糊查询某字段

 /**
 * public static final String EQUAL = "%s=#{%s}";等于
 */
    
/**
 * public static final String NOT_EQUAL = "%s&lt;&gt;#{%s}";不等于
 */
    
/**
 * public static final String LIKE = "%s LIKE CONCAT('%%',#{%s},'%%')";% 两边 %
 */
    
/**
* public static final String LIKE_LEFT = "%s LIKE CONCAT('%%',#{%s})";% 左
*/
    
/**
* public static final String LIKE_RIGHT = "%s LIKE CONCAT(#{%s},'%%')";右 %
*/
    
 @TableField(value = "task_name", condition = SqlCondition.LIKE)
 private String taskName;

4.查询案例

//查询method=1并且operation=2或者=3的数据:

//错误写法:where method=1 and operation=2 or operation=3
LambdaQueryWrapper<SysLog> qw = new LambdaQueryWrapper<>();
qw.eq(SysLog::getMethod, "1");
qw.eq(SysLog::getOperation, "2");
qw.or(i -> i.eq(SysLog::getOperation, "3"));

//正确写法(1) where method=1 and (operation=2 or operation=3)
qw.eq(SysLog::getMethod, "1").and(i -> i.eq(SysLog::getOperation, "2").or().eq(SysLog::getOperation, "3"));
//正确写法(2) where method=1 and (operation=2 or operation=3)
QueryWrapper<SysLog> wrapper = new QueryWrapper<>();
wrapper.eq("method","1").and(i->i.eq("operation","2").or().eq("operation",3));

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文