mybatis如何加入参数的判断条件,mybatis通过什么指定输入参数类型

  mybatis如何加入参数的判断条件,mybatis通过什么指定输入参数类型

  00-1010传入基本类型参数的判断及解决方法基本类型参数传入时,测试判断给出错误,总结分析及解决方法。

  ParameterType是

目录

mybatis的xml文件的sql语句中的基本类型,比如:

 

  select id=getCustomer 参数type= Integer result type= Customer select * from Customer where if test= id!=nullid=#{id}/ifselect将报告错误:“classjava.lang.integer”中名为“id”的属性没有getter

  这是因为Integer对象中没有id属性。

  

对传入基本类型参数的判断

select id= get Customer parameter type= Integer result type= Customer select * from Customer where if test= _ parameter!=null id=# { _parameter }/if select将收到的参数的参数名称更改为_ parameter。请注意,将其更改为其他参数名称是没有用的。

 

  

解决办法

使用mybatis时,出现了这样一个问题:

 

  //代码ListMaps String,Object GetName(字符串用户名)在//Dao层的接口中;//相应映射器中的代码select id= getname result type= Java . util . map select name,client _ id from table 1 where if test= username!=null和用户名!= 和用户名=#{id} /if /where/select//错误组织。mybatis . spring . mybatissystemexception : nested exception is org . Apache . ibatis . reflection . reflection exception :“class Java . lang . string”中没有名为“username”的属性的getter

  00-1010“class Java . lang . string”中名为“username”的属性没有getter。这句话大致意思是“classjava.lang.string”中名为“username”的属性没有getter方法。因为mybatis默认使用ONGL解析参数,所以会自动取对象树形式的string.num的值,造成错误。

  00-1010 if test中的id替换为_parameter,而实际语句不需要修改and a.id=#{id},因为Mybatis在只传入一个参数的情况下,对# {}中的内容没有要求。

  在Mapper中设置access参数的名称,例如:public…getname(@ param(" username ")string username);这样修改后我们之前写的就不会报错了。

  00-1010传入基本类型数据时,if标签中测试判断的写入hi根据ognl表达式取值,不能直接写入参数名称。您应该改用_parameter,或者使用批注@Pram( )作为参数的别名。

  标签中的测试属性在补充一点点:时也有同样的问题!

  以上个人经验,希望能给大家一个参考,也希望大家能支持盛行的IT。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: