今天在写一个查询模块功能时候遇到了这个问题
<select id="getUserList" resultType="User">
select id,loginName,password,userName,sex,identityCode,email,mobile,type
from easybuy_user
limit #{(currentPageNo - 1) * pageSize},#{pageSize}
</select>
这样写会导致报错,在网上查了一下发现是写法有问题
#{}是预编译,不能直接做运算,有两种解决方式,
1.使用<bind标签>
<select id="getUserList" resultType="User">
//预先声明定义好需要的计算结果,然后再传入
<bind name="nowIndex" value="(currentPageNo - 1) * pageSize"/>
select id,loginName,password,userName,sex,identityCode,email,mobile,type
from easybuy_user
limit #{nowIndex},#{pageSize}
</select>
2.或者以${}进行计算传参
<select id="getUserList" resultType="User">
select id,loginName,password,userName,sex,identityCode,email,mobile,type
from easybuy_user
//使用${}方式进行计算传参
limit ${(currentPageNo - 1) * pageSize},${pageSize}
</select>