mybatis 使用String 与其他基本类型时 动态sql 注意的地方


这样引用时错误的

 <select id="findById" parameterType="java.lang.String" resultMap="sysParameterMap" >
        select * from sys_parameter     
        <where>
            <if test="id !=null">
                
                 and PARAMETER_ID = #{id}
            </if>
               
        </where>    
if 标签中不能使用传入参数的名字,因为会解析成对象的属性。也就会报下面异常

: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.String'
	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:371)
	at com.sun.proxy.$Proxy10.selectOne(Unknown Source)
	at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:163)
	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:63)
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:43)
	at com.sun.proxy.$Proxy13.findById(Unknown Source)

   <if test="id !=null">
中的id 换成value 即可解决


 <select id="findById" parameterType="java.lang.String" resultMap="sysParameterMap" >
    	select * from sys_parameter 	
    	<where>
    	    <if test="value !=null">
    	        
    	         and PARAMETER_ID = #{id}
    	    </if>
    	       
    	</where>		
    </select>

value 会mybatis 默认访问值的参数


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值