Mybatis的分页功能可不可以通过数据库中的存储过程动态执行查询来帮助实现?
Spring、Mybatis、Mysql 通过存储过程实现分页博客一共有3部分
第一部分:存储过程动态分页之存储过程实现
第二部分:存储过程动态分页之Mybatis实现
第三部分:存储过程动态分页之实际工程demo
目前这篇讲的是
第二部分:存储过程动态分页之Mybatis实现
Mybatis通过调用dynamic_paging存储过程来实现对任意查询的分页
Mybatis是可以调用存储过程的。例如,在Mybatis的mapper文件中:
<select id="get***" resultMap="**Map"
parameterMap="procMap" statementType="CALLABLE">
CALL proc(?,?)
</select>
<parameterMap type="java.util.Map" id="procMap">
<parameter property="param1" mode="IN" jdbcType="INTEGER" />
<parameter property="param1" mode="IN" jdbcType="INTEGER" />
</parameterMap>
分页的存储过程
CREATE PROCEDURE `dynamic_paging`(sql varchar(500),page_begin int,size int)
问题就在于dynamic_paging该存储过程第一个参数(sql)是需要在调用前动态生成。
例如:
select * from tableA,tableB where tableA.id=tableB.uid and id=10
Mybatis 调用时的sql为:
select * from tableA,tableB where tableA.id=tableB.uid and id= ?
id=10这个是由程序传入的。是一个具体的业务数据。
而这部分又是调用dynamic_paging的第一个参数。
具体的解决方法为:MyBatis Velocity,链接
http://www.mybatis.org/velocity-scripting/index.html
在配置文件中动态填充业务逻辑值,然后传给存储过程
例如:
<select id="get***" resultMap="***Map"
parameterMap="procMap" statementType="CALLABLE" lang="velocity" >
#set( $sql = 'select * from tableA,tableB where tableA.id=tableB.uid and id='+$_parameter.id )
#set( $begin=$_parameter.pageBegin)
#set( $size=$_parameter.fetchSize)
CALL dynamic_paging(@{sql},@{begin},@{size})
</select>
<parameterMap type="java.util.Map" id="procMap">
<parameter property="id" />
<parameter property="pageBegin" />
<parameter property="fetchSize"/>
</parameterMap>
分享到:
相关推荐
Spring+SpringMVC+MyBatis+Mysql 使用PageHelper 实现分页,里面包含数据库文件和项目的源码。数据库是mysql 5.5 的,项目加载进去就可以运行。
但是,在参考写的同时也发现有很多地方都不解不能直接用的问题,导致实际使用的过程中经常会出错,参考原来做的项目,以及网上的资料,整理了一个比较简单的自己理解的spring+spring mvc+mybatis+mysql实现的分页的...
本套源代码实现了Spring 和 mybatis 和 layui 集成情况下的基础操作,包括: 增删改查、分页、导入导出等功能。数据库为mysql,脚本在源代码根目录下,mybatis_crud.sql
Spring+MyBatis含分页的基本配置,加入json方式异常处理
springboot整合mybatis,mysql实现简单增删改查,对mybatis增删改查分页做了简单封装
# Spring Boot 集成 MyBatis, 分页插件 PageHelper, 通用 Mapper ## 项目依赖 ```xml <!--mybatis--> <groupId>org.mybatis.spring.boot <artifactId>mybatis-spring-boot-starter <version>1.1.1 <!...
SpringBoot整合mybatis-plus实现多数据源的动态切换且支持分页查询,案例以postgresql和oracle数据库为数据源,分别使用mybatis-plus分页插件和pagehelper分页插件实现分页查询。
前后端分离后端框架:springcloud集成mysql+mybatis+分页可运行demo
分页功能是我们日常开发中经常会遇到的,下面这篇文章主要给大家介绍了Spring MVC+MyBatis+MySQL实现分页功能的相关资料,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
mybatis支持MYSQL分页 暂只支持MYSQL且不适用与MYBATIS-SPRING一起使用 调用方法 List selectList(String statement, int start ,int end) 与 List selectList(String statement, Object parameter, int start ,int ...
基于spring+spring mvc+mybatis框架整合实现超市货物管理系统(实现登入功能、mysql数据库的增删改查及分页显示)
基于Springboot+MyBatis+MySQL实现多功能个人博客系统 项目经过严格测试,确保可以运行! 功能点: 用户注册登录功能 Markdown文章发布功能 文章分页显示 文章分类 文章标签/标签云 文章点击量 阅读排行 赞...
由Spring-SpringMVC-MyBatis-MySQL数据库开发的一个博客系统 技术 后端 Spring Spring MVC MyBatis druid-数据库连接池 PageHelper-Mybatis通用分页插件 FreeMarker-模板引擎 前端 Bootstrap jQuery jQuery Form Vue...
几乎实现涵盖了所有的单表操作和分页操作 2.liquibase: 数据库迁移工具:初始化表和初始化数据,修改表字段和修改数据的管理工具 3.shiro+jwt: 权限认证系统:基于方法级别的权限校验,实现token代替session进行...
使用MyBatis的PageHelper插件实现分页查询的功能,主要涉及到的技术Spring+MyBatis+SpringMvc+Mysql+Druid+PageHelper。
mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis ...
主要给大家介绍了关于利用Spring MVC+Mybatis实现Mysql分页数据查询的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
mybatis spring sqlserver mysql 框架 实现分页技术
Spring+SpringMVC+Mybatis+Maven+MySql项目框架 加分页,详解适合新手 初步学习搭建框架 maven 以及分页技术的应用
java后台springboot技术的小实例项目,浏览器地址访问http://localhost:8080/dialog/selectAllLaw