一、 $ 和 #的区别:
规则一:能使用 ${ } 的地方就能用 #{ }
规则二:表名作为变量时,必须使用 ${ }
参考链接
二、 单一参数传值:
异常问题:“There is no getter for property named 'num' in 'class java.lang.String'。”
解决方法:无论参数名,都要改成"_parameter"。
<update id="updateDbTName" parameterType="String" statementType="STATEMENT"> <!-- statementType:STATEMENT(非预编译)-->
RENAME TABLE HELLO TO ${_parameter} ;
</update>
三、 MyBatis多参数传递之混合方式:
1、多参数的混合参数传值:
- Map传多参数.
- 基本语法:
Map<String, Object> getPRParams2 = new HashMap<String, String>(); getPRParams2.put("idPard", 2); getPRParams2.put("dbName", fileName); parkRecMapper.getParkRecsByIdPark(getPRParams2);
- Mybatis传多个参数(三种解决方案--第一种尝试不行)
2、有对象的混合参数传值:
controller端:
Map<String, Object> updatePR = new HashMap<String, Object>();
updatePR.put("obj", parkRecords_1.get(i));
updatePR.put("dbName", fileName);
parkRecMapper.updateParkRec(updatePR);
mapper端:
(#{obj.timeOut})取值
<!-- 更改 -->
<update id="updateParkRec" >
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'),
作者:hw_zhu
链接:http://www.jianshu.com/p/0fa93b9ef1b4
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。