mybatis直接Xml文件中根据及传入的分页条件进行分页

文章展示了一段在编程中使用iftest条件判断来构造SQLLIMIT子句的代码示例,主要涉及查询当前页和每页大小的逻辑处理。

这个时候需要用$来接,直接上代码:

  <if test="query.current != null and query.size!=null ">
            LIMIT ${(query.current - 1) * query.size},#{query.size}
        </if>
MyBatis 中,通过 XML 文件编写 SQL 实现分页查询是一种常见做法。由于不同数据库的分页语法存在差异,以下以 MySQL 为例说明如何实现分页功能。 ### 分页 SQL 编写方式 MySQL 使用 `LIMIT` 和 `OFFSET` 来实现分页功能。具体语法如下: ```sql SELECT * FROM table_name LIMIT #{pageSize} OFFSET #{offset}; ``` 其中: - `#{pageSize}` 表示每页显示的数据条数。 - `#{offset}` 表示偏移量,通常由 `(当前页码 - 1) * 每页数据条数` 计算得到[^2]。 ### Mapper XML 示例 在 MyBatis 的 Mapper XML 文件中,可以定义一个分页查询的 SQL 语句,如下所示: ```xml <!-- BookMapper.xml --> <mapper namespace="com.example.mapper.BookMapper"> <!-- 基础列 --> <sql id="Base_Column_List"> id, name, author, price </sql> <!-- 分页查询 --> <select id="selectBooksByPage" resultType="com.example.model.Book"> SELECT <include refid="Base_Column_List"/> FROM t_mvc_book LIMIT #{pageSize} OFFSET #{offset} </select> </mapper> ``` 上述代码中的 `#{pageSize}` 和 `#{offset}` 是动态参数,在调用时由 Java传入具体的值[^2]。 ### 动态参数传递 在 Java 代码中,可以通过 Map 或者自定义对象来传递分页参数。例如: ```java Map<String, Object> params = new HashMap<>(); params.put("pageSize", 10); params.put("offset", 20); List<Book> books = bookMapper.selectBooksByPage(params); ``` ### 分页插件支持(可选) 虽然可以直接使用 `LIMIT` 和 `OFFSET` 实现分页,但在实际项目中推荐使用分页插件如 PageHelper 或 MyBatis-Plus 提供的分页功能,它们可以简化分页逻辑并提高开发效率[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值