Java 如何使最新的MyBatis动态SQL支持mysql分页(限制/偏移)?
上面有一些样品 我想为mysql实现limit/offset,但没有看到任何关于如何扩展此库以支持其他where条件的文档 以下是我想要实现的目标:Java 如何使最新的MyBatis动态SQL支持mysql分页(限制/偏移)?,java,mybatis,mybatis-generator,Java,Mybatis,Mybatis Generator,上面有一些样品 我想为mysql实现limit/offset,但没有看到任何关于如何扩展此库以支持其他where条件的文档 以下是我想要实现的目标: SelectStatementProvider selectStatement = select(id, animalName, bodyWeight, brainWeight) .from(animalData) .where(id, isIn(1, 5, 7)) .and(bodyWeight,
SelectStatementProvider selectStatement = select(id, animalName, bodyWeight, brainWeight)
.from(animalData)
.where(id, isIn(1, 5, 7))
.and(bodyWeight, isBetween(1.0).and(3.0))
.orderBy(id.descending(), bodyWeight)
.limit(1).offset(10)
.build()
.render(RenderingStrategy.MYBATIS3);
您可以使用一些资源 本页--显示使用独立where子句构建分页查询的示例。这并不是你想要的,但它展示了一种方法 这里有一个单元测试,它显示了一些更接近您在这里寻找的东西-。这段代码适用于MySQL,您可以按原样使用它
我希望在将来的发行版中使这一点变得更容易。hi@Jeff,如果人们编写自己的映射程序,我发现您的解决方案非常有效。但很难整合到MBG中。您有什么解决方案可以让偏移/限制与MBG一起工作吗?@Jun Cai我认为它已经集成到MBG中,只需将
中的targetRuntime
属性设置为MyBatis3DynamicSql
,对于任何回答晚的人,MyBatis DynamicSQL现在直接支持限制和偏移。不再需要编写自定义代码。