`

mybatis使用InsertProvider注解报错解决过程

阅读更多

        目前项目在使用mybatis,并且是使用注解的方式。在使用InsertProvider注解的时候报了一下的错误:org.apache.ibatis.builder.BuilderException: Could not find value method on SQL annotation.  Cause: org.apache.ibatis.builder.BuilderException: Error creating SqlSource for SqlProvider. Method........

       注解是如下这个样子的

@InsertProvider(method = "insertlist",type=SqlProvider.class)
 public int insertInnerTable(List list,String dbTable);

        思路是要写一个通用的插入一个集合的方法,但是在执行的时候就报了上面的错误。在网上查资料未果。于是只能自己动手,丰衣足食了。一步步跟断点,跟到mybatis了报错的方法中,发现了如下的代码

try {
      this.sqlSourceParser = new SqlSourceBuilder(config);
      this.providerType = (Class<?>) provider.getClass().getMethod("type").invoke(provider);
      providerMethodName = (String) provider.getClass().getMethod("method").invoke(provider);

      for (Method m : this.providerType.getMethods()) {
        if (providerMethodName.equals(m.getName())) {
          if (m.getParameterTypes().length < 2
              && m.getReturnType() == String.class) {
            this.providerMethod = m;
            this.providerTakesParameterObject = m.getParameterTypes().length == 1;
          }
        }
      }
    } catch (Exception e) {
      throw new BuilderException("Error creating SqlSource for SqlProvider.  Cause: " + e, e);
    }

        注意标黄的位置,终于发现导致错误的罪魁祸首了,原来是这里限制了参数的个数,不能操作两个参数的啊。

        于是将方法以及注解改为如下形式

@InsertProvider(method = "insert",type=SqlProvider.class)
 public int insert(SqlContext sqlContext);

在SqlProvider中对应的方法为

public String insert(SqlContext sqlContext){

      ........

}

至此问题解决

0
0
分享到:
评论

相关推荐

    spring boot整合mybatis-plus启动报错问题及解答.pdf

    在整合Spring Boot与MyBatis-Plus的过程中,可能会遇到启动应用时报错的问题。错误信息通常类似于"Error starting ApplicationContext",并提示"UnsatisfiedDependencyException",这表明Spring框架在初始化bean时...

    实现mybatis常用注解demo

    实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用...

    springMVC和mybatis整合,mybatis使用注解模式

    总的来说,SpringMVC和MyBatis的整合使得我们可以充分利用两者的优点,SpringMVC负责请求处理,MyBatis专注于数据库操作,两者结合提供了一种强大的后端解决方案。在实际开发中,这种整合方式不仅提高了开发效率,也...

    Mybatis基于注解实现多表查询功能

    Mybatis基于注解实现多表查询功能是指使用Mybatis框架中的注解来实现多表查询的功能。这种方法可以简化配置,提高开发效率。下面我们将详细介绍如何使用Mybatis基于注解实现多表查询功能。 一、多表查询的概念 在...

    mybatis如何实现注解sql的简单例子

    本文将深入探讨如何在MyBatis中使用注解来编写SQL语句,通过一个简单的例子来阐述其核心概念和步骤。 首先,我们需要理解MyBatis中的注解是如何工作的。MyBatis允许我们在接口的方法上使用注解来直接定义SQL语句,...

    Spring 4 + Mybatis 3 注解事务

    Spring 与 各框架的组各下来,版本就特别的多,针对简单的 使用注解来管理事务的,研究了两天,要不网上...说一下环境 Intellij Idea 15 + Maven + Spring 4.25 + Mybatis 3使用注解的方式,进行的事务回滚,欢迎测试。

    Spring mvc 和 mybatis 整合,mybatis使用注解模式

    在MyBatis的注解模式下,我们可以直接在DAO接口的方法上使用注解来指定SQL语句。例如,@Select用于查询,@Insert用于插入,@Update用于更新,@Delete用于删除。这种方式简化了XML配置,使得代码更易读、易维护。 ...

    SpringMVC+MyBatis+MySql注解示例

    4. **配置MyBatis**:编写MyBatis的全局配置文件`mybatis-config.xml`,并定义Mapper接口和Mapper XML文件,使用注解或者XML配置SQL。 5. **数据库配置**:设置MySQL的连接信息,如URL、用户名、密码等。 6. **启动...

    MyBatis基于注解简单案例

    在这个基于注解的简单案例中,我们将深入探讨如何使用MyBatis进行基本的数据操作:增加、删除、修改和查询。 首先,我们需要在项目中引入MyBatis的依赖库。通常,这可以通过Maven或Gradle的配置来完成。在Maven的...

    mybatis使用注解方式简单实现的Demo

    这个"mybatis使用注解方式简单实现的Demo"旨在帮助初学者理解 MyBatis 注解的用法。 首先,我们需要在项目中引入 MyBatis 相关的依赖库。通常,这可以通过 Maven 或 Gradle 的依赖管理来完成。确保在你的 `pom.xml`...

    springmvc+mybatis+spring注解

    标题 "springmvc+mybatis+spring注解" 描述了一个集成框架,该框架结合了Spring MVC、MyBatis和Spring的注解特性,用于构建Web应用程序。这个框架使用Maven作为构建工具,使得项目的依赖管理和构建过程更加简洁高效...

    C3P0,MyBatis依赖,注解依赖jar包

    MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 3. Spring对MyBatis的支持:Spring通过其`SqlSessionFactoryBean`和`...

    mybatis返回Integer

    在使用MyBatis进行数据操作时,我们经常会遇到关于返回值类型的困扰,特别是涉及到基本类型int和对象类型Integer之间的转换。标题"mybatis返回Integer"指的是在MyBatis的映射文件或者Mapper接口中,使用Integer作为...

    Spring mvc 和 mybatis 整合、 mybatis使用注解模式

    本文将深入探讨如何整合Spring MVC与MyBatis,以及如何在MyBatis中使用注解模式。 首先,Spring MVC是一个轻量级的Java Web框架,它提供了强大的模型处理、视图解析和控制器管理功能。而MyBatis则是一个持久层框架...

    mybatis generator中文注解

    1:将原有实体类生成的英文注释修改为数据库中的中文注释 2:将原有生成的Dao接口和Mapper.xml文件后面的Mapper更改为Dao;如:UserMapper.java 修改为:UserDao.java;UserMapper.xml修改为UserDao.xml;...

    mybatis-3-config/mapper.dtd 解决mybatis头文件报错

    解决mybatis头文件报错 下载好压缩包 解压将文件放到本地文件夹 例如 D盘的哪个文件夹 D:\mybatis\ ;然后打开eclipse -&gt;Window-&gt;prefenrence-&gt;XML-&gt;XML Catalog-&gt;User Specifiled Entreis-&gt;Add-&gt;Location(此处是你...

    spring3 struts2 Mybatis3 组件注解 事务注解 实例

    同时,Mybatis3也支持使用`@Transactional`注解进行局部事务控制,但通常在Spring环境中,全局事务管理由Spring负责。 在这个"spring3+struts2+Mybatis3"的实例中,你将学习如何集成这三个框架,创建一个完整的Java...

    SpringMvc+Spring+Mybatis+Maven+注解方式=整合

    - 对于数据库操作,MyBatis的注解如@Select、@Insert、@Update和@Delete可以直接在Mapper接口的方法上使用,将SQL语句与Java代码关联。 - MyBatis的配置文件(mybatis-config.xml)中,设置数据源和...

    mybatis-3.2.7.jar和mybatis-3.5.1.jar

    MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的...

    Mybatis接口注解

    标题提到的 "Mybatis 接口注解" 主要是指在 Service 或 Dao 接口中使用注解来简化数据访问的配置。 传统的 Mybatis 使用方式是通过编写 XML 映射文件,例如 `User.xml`,来定义 SQL 语句、参数映射以及结果映射。...

Global site tag (gtag.js) - Google Analytics