Mybatis查询
使用Mybatis查询时,其参数可以是基本数据类型或者像Integer和String这样的简单的数据对象,也可以是复杂对象(一般是指JavaBean)或者map等,当使用基本数据类型的参数时,若这个参数的使用放在了判断条件中,如下查询语句:
<select id="getNameList" parameterType="String" resultType="String"> <![CDATA[ SELECT DISTINCT NAME FROM T_PERSION WHERE 1=1 ]]> <if test="age!=null"> AND AGE = #{age} </if> </select>
则可能会出现:
org.apache.ibatis.reflection.ReflectionException:There is no getter for property named 'XXX' in 'class java.lang.XXX
的异常,问题的直接原因是由于上面的parameterType是基本的简单类型而后面有判断的if条件,若没有后面的判断条件,而是:
<select id="getNameList" parameterType="String" resultType="String"> <![CDATA[ SELECT DISTINCT NAME FROM T_PERSION WHERE 1=1 AND AGE = #{age} ]]> </select>
则没有任何异常。
对上面的异常,网上说问题原因是Mybatis默认采用ONGL解析参数,所以会自动采用对象树的形式获取传入的变量值,解决方法有两个:
1.将参数名(上面的例子为‘age’)替换为"_parameter" ,即:
<select id="getNameList" parameterType="String" resultType="String"> <![CDATA[ SELECT DISTINCT NAME FROM T_PERSION WHERE 1=1 ]]> <if test="_parameter!=null"> AND AGE = #{_parameter} </if> </select>
2,在接口中定义方法时 增加“@Param("参数名")” 标记,例如:
List<String> getNameList(@Param("age")String age);
相关推荐
如果按照处理对象类型的参数方式直接在`<if>`中使用参数名,可能会遇到异常`There is no getter for property named 'xxx' in 'class java.lang.Integer'`。这是因为MyBatis在寻找getter方法时找不到对应的属性,...
`java.lang.UnsupportedOperationException`是Java中的一个运行时异常,它属于`RuntimeException`的子类。这个异常通常在尝试调用一个不支持的操作时抛出。在Java编程中,某些方法可能在特定对象或特定条件下不支持...
在使用Mybatis框架进行数据库交互时,偶尔会遇到一个奇怪的问题,即在mapper接口中遇到"There is no getter for property"异常。这个异常的出现原因是由于Mybatis框架在映射实体类的属性时,无法找到对应的getter...
在整合Spring、Struts2和Mybatis的过程中,可能会遇到各种问题,其中之一就是`java.lang.IllegalArgumentException: Result Maps collection already contains value for X`。这个问题通常出现在Mybatis配置文件中,...
MyBatis 分页拦截器是实现数据库查询分页效果的一种高效解决方案。在传统的SQL查询中,我们通常需要手动编写分页语句,但这容易出错且不易维护。通过使用分页拦截器,我们可以将分页逻辑封装起来,使得在编写Mapper...
Mybatis PageHelper分页插件是一款广泛使用的Java框架,它为Mybatis提供了强大的分页功能。在使用Mybatis进行数据库操作时,分页查询是非常常见且重要的需求,尤其是在处理大量数据时,避免一次性加载所有结果,提高...
import static org.mybatis.spring.SqlSessionUtils.isSqlSessionTransactional; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.sql.Connection; import java.util....
/** finder.mybatis **/ 1、项目摘要:mybatis hello,world demo 2、开发环境:开发工具-->Myeclipse10.0 java环境-->JDK1.6 数据库环境-->Oracle11g Mybatis版本:3.2.2 log4j版本:1.2.17 3、数据库: ...
在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码
MyBatis Generator(MBG)是一款强大的自动化代码生成工具,尤其在处理MyBatis框架中的Mapper接口、XML映射文件以及Model实体类时,能够显著提高开发效率。它可以根据数据库表自动生成对应的Java代码,包括POJO...
MyBatis-通用Mapper通过逆向工程(Reverse Engineering)和代码生成工具,能够自动生成与数据库表相关的Java实体类、Mapper接口和Mapper XML配置文件,极大地提高了开发效率。下面我们将深入探讨这个工具的使用和...
常问问题1,出现了如下BUG org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'statement' in 'class ...
Spring+Jersey+Mybatis小实例,为了搭建这个折腾了两天,其中一天是因为jar包版本引起的,一直报异常:java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/...
nested exception is org.springframework.core.NestedIOException: Failed to parse config resource: class path resource [mybatis- config.xml]; nested exception is org.apache.ibatis.builder....
在MyBatis中,`<foreach>`标签是用于遍历集合对象并生成SQL语句的重复部分,例如IN语句的括号内元素。然而,当你遇到“_frch_item_0 not found”这样的错误时,通常是由于在使用`<foreach>`时出现了配置或编码上的...
MyBatis SQL mapper framework for Java
在使用Mybatis框架时,你可能会遇到`org.apache.ibatis.exceptions.PersistenceException`这样的异常。这个异常通常表示在执行数据库查询操作时遇到了问题。本篇将详细分析这个问题并提供解决方法。 ### 问题概述 ...
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:orcl4" userId="xxx" password="xxxx" /> <javaTypeResolver> <property name=...
在Java开发中,Mybatis是一个流行持久层框架,它提供了灵活的SQL映射和对象关系映射功能。本文将详细讲解如何使用Java程序生成Mybatis的mapper.xml和mapper.java文件,以便于简化开发过程,提高代码的可维护性和效率...
free-idea-mybatis is an enchange plugin for idea to supoort mybatis,here is the main functions: generate mapper xml files navigate from the code to mapper and from the mapper back to code auto code...