zoukankan      html  css  js  c++  java
  • mybatis-plus使用Wrapper自定义sql时出现错误:Invalid bound statement (not found)

    先看正确的项目结构

    正确的项目结构
    其中1、2、3、4编译之后分别对应target文件夹下的1'、2'、3'、4'。

    先讲一下Wrapper自定义sql的配置

    1. 首先在application.yml配置好UserMapper的解析路径。默认为"classpath:/mapper/**/.xml"。所以按照上面截图的位置配置是会默认解析到的。
    mybatis-plus:
      mapper-locations:
        - 你的mapper路径
    

    如果更换了路径,则需要按照上面yml进行重新配置,并且要确保编译后到target目录下(有的位置可能不会编译到target目录下,需要注意)

    1. 假定com.zhoushiya.demo.dao.UserMapper类编写了自定义方法selectAll()如下
    package com.zhoushiya.demo.dao;
    
    import com.baomidou.mybatisplus.core.conditions.Wrapper;
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import com.baomidou.mybatisplus.core.toolkit.Constants;
    import com.zhoushiya.demo.entity.User;
    import org.apache.ibatis.annotations.Param;
    
    import java.util.List;
    
    public interface UserMapper extends BaseMapper<User> {
    
        List<User> selectAll(@Param(Constants.WRAPPER) Wrapper<User> wrapper);
    }
    
    
    1. 那么resources.mapper.UserMapper.xml必须实现同名方法(id=selectAll),且名称空间(namespace)需要指定为com.zhoushiya.demo.dao.UserMapper,返回值(resultType)必须为com.zhoushiya.demo.entity.User
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.zhoushiya.demo.dao.UserMapper">
        <select id="selectAll" resultType="com.zhoushiya.demo.entity.User">
            SELECT * FROM user ${ew.customSqlSegment}
        </select>
    </mapper>
    

    tips:如果可以按住ctrl键指向xml中的namespace的最后一个单词,如果变成手形而且单击后可以跳转,那么肯定地址是对的。resultType同理

    Invalid bound statement (not found)可能的错误原因

    如果仔细看了上述注意点,那么很容易就明白可能是哪些地方出现了问题

    1. application.yml指定的mapper解析目录不对,或者target目录下没有
    2. UserMapper.xml不存在同名方法,或者名称空间不对,或者返回值不对
  • 相关阅读:
    Linux进阶之正则,shell三剑客(grep,awk,sed),cut,sort,uniq
    生成下拉列表
    获取服务器时间
    Web窗体(WebForm)
    Session
    Cookie
    Server属性
    Response缓冲区
    小案例
    Web窗体(WebForm)的删除和修改
  • 原文地址:https://www.cnblogs.com/zhoushiya/p/12797240.html
Copyright © 2011-2022 走看看