从controller 到mapper.xml的传值,及其mybatis中$ 与#的区别

一、 $ 和 #的区别:

规则一:能使用 ${ } 的地方就能用 #{ }
规则二:表名作为变量时,必须使用 ${ }
参考链接


二、 单一参数传值:

异常问题:“There is no getter for property named 'num' in 'class java.lang.String'。”
解决方法:无论参数名,都要改成"_parameter"。

      
        RENAME TABLE HELLO TO  ${_parameter} ;


三、 MyBatis多参数传递之混合方式:

1、多参数的混合参数传值:
  • Map传多参数.
  • 基本语法:
Map getPRParams2 = new HashMap();
    getPRParams2.put("idPard", 2);
    getPRParams2.put("dbName", fileName);
    parkRecMapper.getParkRecsByIdPark(getPRParams2);```
+ [Mybatis传多个参数(三种解决方案--第一种尝试不行)](http://www.2cto.com/database/201409/338155.html)


#####2、有对象的混合参数传值:
controller端:

Map updatePR = new HashMap();
updatePR.put("obj", parkRecords_1.get(i));
updatePR.put("dbName", fileName);
parkRecMapper.updateParkRec(updatePR);

mapper端:
> (#{obj.timeOut})取值



update ${dbName} set time_out=#{obj.timeOut} ,
dateTime_out=FROM_UNIXTIME(floor((#{obj.timeOut})10)+57600,'0000-00-00 %k:%i:%s'),
dateTime_in=FROM_UNIXTIME(floor((#{obj.timeIn})
10)+57600,'0000-00-00 %k:%i:%s'),```

你可能感兴趣的:(从controller 到mapper.xml的传值,及其mybatis中$ 与#的区别)