MYSQL中存储过程中写入分页查询----深坑

 create PROCEDURE test1(curruentPage int,pageSize int,tableName VARCHAR(20))
BEGIN
 set @pageindex:=(curruentPage-1)*pageSize;
‘select * from  ’+tableName +‘ limit ’+@pageindex+‘,’+pageSize ;
 END


存储过程test1中我们把传入的表名放入字符串中进行+拼接,

数据库不能正常执行



create PROCEDURE test2(curruentPage int,pageSize int,tableName VARCHAR(20))

BEGIN
set @pageindex:=(curruentPage-1)*pageSize;
SET @str=CONCAT('select * from   ',tableName,'  limit  ',@pageindex,',',pageSize);
PREPARE str from @str;
EXECUTE str;

END


test2中换成concat('str1','str2',...)拼接

预编译

执行

ok!传入当前页数,页面size,以及表名 可以执行分页查询,后台java代码只需要调用存储过程test2

你可能感兴趣的:(MYSQL中存储过程中写入分页查询----深坑)