Mybatis中limit用法与分页查询

错误示范

错误示范一:
java 复制代码
<select id="fileInspectionList" resultType="map">
		SELECT <include refid="aip_n_static_cols"/>
		FROM sys_inspection_form  WHERE
		<if test=" type == 'admin'.toString() ">
			dept_id = #{deptid}
			order by id
			limit  #{start},#{pageSize}
		</if>
		<if test=" type != 'admin'.toString() ">
			dept_id = #{deptid}
			AND status='已发布'
			or user_id = #{userid}
			order by id
			limit  #{start},#{pageSize}
		</if>
	</select>
错误示范二:
java 复制代码
<select id="fileInspectionList" resultType="map">
		SELECT <include refid="aip_n_static_cols"/>
		FROM sys_inspection_form  WHERE
		<if test=" type == 'admin'.toString() ">
			dept_id = #{deptid}
			order by id
			limit = #{start},#{pageSize}
		</if>
		<if test=" type != 'admin'.toString() ">
			dept_id = #{deptid}
			AND status='已发布'
			or user_id = #{userid}
			order by id
			limit = #{start},#{pageSize}
		</if>
	</select>

这里先要了解一下:

#{}和${}的区别:

#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换。#{}可以有效防止sql注入。 #{}可以接收简单类型值或pojo属性值。 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。

{}表示拼接sql串,通过{}可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换, {}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,{}括号中只能是value。

正确写法:

java 复制代码
<select id="fileInspectionList" resultType="map">
		SELECT <include refid="aip_n_static_cols"/>
		FROM sys_inspection_form  WHERE
		<if test=" type == 'admin'.toString() ">
			dept_id = #{deptid}
			order by id
			limit  ${start},${pageSize}
		</if>
		<if test=" type != 'admin'.toString() ">
			dept_id = #{deptid}
			AND status='已发布'
			or user_id = #{userid}
			order by id
			limit  ${start},${pageSize}
		</if>
	</select>
相关推荐
杰克尼25 分钟前
知识点总结--day07(Spring-MVC框架)
java·spring·mvc
顶点多余28 分钟前
从源码深度探究“线程控制“
java·linux·开发语言
网安2311石仁杰29 分钟前
ZAP 主动扫描模块精读:从代码层面理解安全检测引擎的设计与质量
java·安全
码上生存指南35 分钟前
技术栈要不要追新?我为此换过一次工作,结论是……
java·程序人生
chehaoman40 分钟前
SpringBoot3.3.0集成Knife4j4.5.0实战
java
Fang fan43 分钟前
Netty入门
java·开发语言·redis·分布式·python·哈希算法
我真会写代码1 小时前
Java程序员常用设计模式详解(实战版)
java·开发语言·设计模式
夫礼者1 小时前
【极简监控】不骗篇幅!7个零运维成本的排障“微操”,让线上问题彻底左移
java·运维·监控
matlabgoodboy1 小时前
Python代做java代码编写C++大数据R语言Hadoop/spark/flink/C语言
java·大数据·python
实心儿儿1 小时前
C++ —— 红黑树
java·开发语言·算法