springbootmybatis(mybatisplus)自定义mapper,sql

wlphyl wlphyl     2022-12-03     409

关键词:

背景:Spring整合Mybatis

springboot配合mybatisplus 自定义mapper、sql尤其要注意第5点.

报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

解释:就是说,你的Mapper接口,被Spring注入后,却无法正常的使用mapper.xml的sql;

       这里的Spring注入后的意思是,你的接口已经成功的被扫描到,但是当Spring尝试注入一个代理(MyBatista实现)的实现类后,却无法正常使用。这里的可能发生的情况有如下几种;

接口已经被扫描到,但是代理对象没有找到,即使尝试注入,也是注入一个错误的对象(可能就是null)
接口已经被扫描到,代理对象找到了,也注入到接口上了,但是调用某个具体方法时,却无法使用(可能别的方法是正常的)
当然,我们不好说是那种情况,毕竟报错的结果是一样的,这里就提供几种排查方法:

mapper接口和mapper.xml是否在同一个包(package)下?名字是否一样(仅后缀不同)?
比如,接口名是NameMapper.java;对应的xml就应该是NameMapper.xml
mapper.xml的命名空间(namespace)是否跟mapper接口的包名一致?
比如,你接口的包名是com.abc.dao,接口名是NameMapper.java,那么你的mapper.xml的namespace应该是com.abc.dao.NameMapper
接口的方法名,与xml中的一条sql标签的id一致
比如,接口的方法List<User> findAll();那么,对应的xml里面一定有一条是<select id="findAll" resultMap="**">****</select>
如果接口中的返回值List集合(不知道其他集合也是),那么xml里面的配置,尽量用resultMap(保证resultMap配置正确),不要用resultType
最后,如果你的项目是maven项目,请你在编译后,到接口所在目录看一看,很有可能是没有生产对应的xml文件,因为maven默认是不编译的,因此,你需要在你的pom.xml的<build></build>里面,加这么一段:
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
我就是坑在了第5点上,折腾了四个多小时,大家及时发现。
 ———————————————— 
版权声明:本文为CSDN博主「马太胖」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ppppfly/article/details/46847299

springbootmybatis配置

首先pom.xml<!--mybatis配置--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.0</version& 查看详情

springbootmybatis

mybatis-spring-boot-starter主要有两种解决方案,一种是使用注解解决一切问题,一种是简化后的老传统。无论哪种,第一步是必不可少的。无配置文件注解版第一步:添加依赖<dependency><groupId>org.mybatis.spring.boot</groupId><... 查看详情

详解springbootmybatis全注解化(代码片段)

  本文重点介绍springbootmybatis注解化的实例代码1、pom.xml//引入mybatis<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version 查看详情

(转)springbootmybatis连接数据库

最近比较忙,没来得及抽时间把MyBatis的集成发出来,其实mybatis官网在2015年11月底就已经发布了对SpringBoot集成的Release版本,Github上有代码:https://github.com/mybatis/mybatis-spring-boot 前面对JPA和JDBC连接数据库做了说明,本文也是参... 查看详情

springbootmybatis(代码片段)

文章目录上一节springboottest源码Springbootmybatismybatis简介springboot整合mybatis代码示例注解版使用介绍sql生成器其他mybatis分页mybatis自带分页pageHelper分页mybatis拦截器下一节springbootjpa上一节springboottestspringboottest源码Springbootmybatisspringboo... 查看详情

springbootmybatis(代码片段)

文章目录上一节springboottest源码Springbootmybatismybatis简介springboot整合mybatis代码示例注解版使用介绍sql生成器其他mybatis分页mybatis自带分页pageHelper分页mybatis拦截器下一节springbootjpa上一节springboottestspringboottest源码Springbootmybatisspringboo... 查看详情

springbootmybatis使用localdatetime(代码片段)

 mybatis-spring-boot-starter2.0.1会报错,不知道如何解决(建议先不用)mybatis-spring-boot-starter2.0.1-1.3.2版本不会报错,也无需加上其他依赖  注意1.3.2以下版本需要加上<dependency><groupId>org.mybatis</groupId>< 查看详情

springbootmybatis的日志输出问题

在SpringBoot框架中想显示Mybatis的SQL语句输出,但是却没有配置任何XML文件,网上查找了相关方法不见起效 环境:IDEA/Springboot2.0只需要实现Mybatis的Log接口,即可packagecom.diy.mylog;publicclassSlefLogimplementsorg.apache.ibatis.logging.Log{//必须有一... 查看详情

springbootmybatis使用

MybatisMyBatis的前身是Apache社区的一个开源项目iBatis,于2010年更名为MyBatis。MyBatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,使得开发人员... 查看详情

springbootmybatis使用(代码片段)

MybatisMyBatis的前身是Apache社区的一个开源项目iBatis,于2010年更名为MyBatis。MyBatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,使得开发人员... 查看详情

springbootmybatis读取配置文件

springbootmybatis配置整理一、加载mybatis的配置1、手写配置,写死在代码里importjava.io.IOException;importjava.util.Properties;importjavax.sql.DataSource;importorg.apache.commons.logging.Log;importorg.apache.commons.logging.Lo 查看详情

springbootmybatis使用(代码片段)

MybatisMyBatis的前身是Apache社区的一个开源项目iBatis,于2010年更名为MyBatis。MyBatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,使得开发人员... 查看详情

springbootmybatis代码自动生成和辅助插件

一、简介1.1MyBatisGenerator介绍MyBatisGenerator是MyBatis官方出品的一款,用来自动生成MyBatis的mapper、dao、entity的框架,让我们省去规律性最强的一部分最基础的代码编写。1.2MyBatisGenerator使用MyBatisGenerator的使用方式有4种:命令行生成Ma... 查看详情

springbootmybatis-plus分页模糊查询分页参数和响应封装

参考技术A上一篇SpringBoot集成Mysql、Mybatis、Mybatis-Plus,实现增删改查Mybatis-Plus封装了分页操作,简单配置一下就可以用。我这里还简单做了分页请求参数的封装和响应的封装。BasePageParam分页参数类BasePageResult分页响应类UserInfoPageP... 查看详情

springbootmybatis多数据源解决方案

  在我们的项目中不免会遇到需要在一个项目中使用多个数据源的问题,像我在得到一个任务将用户的聊天记录进行迁移的时候,就是用到了三个数据源,当时使用的AOP的编程方式根据访问的方法的不同进行动态的切换数据源... 查看详情

springbootmybatis多数据源配置

在springboot项目中配置多个数据源的情形在开发中经常会遇见,本文以SpringBoot+MyBatis的方式实现mysql+Postgresql双数据源项目搭建,具体详细代码请参考:https://gitee.com/senn-wen/my...一、依赖配置在pom.xml文件中引入postgresql和mysql的驱动... 查看详情

springbootmybatis-plus报错sqlsessionfactorysqlsessiontemplate最新解决办法(代码片段)

本文针对MyBatis-plus,对于MyBatis报相同的错误,可以看这个大佬的文章:SpringBoot3整合MyBatis报错:Property‘sqlSessionFactory‘or‘sqlSessionTemplate‘arerequired针对报错如下:Property'sqlSessionFactory'or'sqlSessionTemplat... 查看详情

springbootmybatis实现分表(代码片段)

    开发过程中可能会碰到分表的场景,数据库的数据量相当大的时候可能需要按天分表或者按月分表啥的(分表策略)。接下来就教大家用最简单的方式实现这一需求。    咱们接下来主要实现以下两个大功能:自动... 查看详情