mybatis在详情页里操作上一页下一页

现在是刚入门级的程序员,今天在做详情页的时候要做上一条、下一条这样的操作。最开始想到的是用分页的思维做,其实也是用分页的原理,但是不是直接的分页原理来处理,需要拐个弯。

最开始我就直接点击列表里的“查看详情”后获取到主键id(我们所有的id都是使用uuid),然后把id传到后台。最开始我连这个id都没用到,原谅我这个菜鸟总是丢三拉屎,这样很不好(认真脸。。。)直接就使用封装好的分页接口,然后每页显示一条的原理。ok,这样做完,我擦,聚完美!一页一条。100条数据就有100页。呵呵,天真可爱善良的小姑娘。然后迅速地被自己的天真给打败了,后来请教了一下公司里的前辈,加上上网查的资料,后来就是这样做。。。

网上查出的资料是这样的

 

方法一:
查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误):
1
select * from table_a where id = (select id from table_a where id < {$id} [and other_conditions] order by id desc limit 1) [and other_conditions];
查询下一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误):
1
select * from table_a where id = (select id from table_a where id > {$id} [and other_conditions] order by id asc limit 1) [and other_conditions];
方法二:
查询上一条记录的SQL语句((如果有其他的查询条件记得加上other_conditions以免出现不必要的错误))
1
select * from table_a where id = (select max(id) from table_a where id < {$id} [and other_conditions]) [and other_conditions];
查询下一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误):
1
select * from table_a where id = (select min(id) from table_a where id > {$id} [and other_conditions]) [and other_conditions];

 

 

 

 

但是我们用的id不是自增的,所以id的不行。后面我就根据创建时间来,同样的道理,把里面的id换成createTime

 

方法一:
查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误):
1
select * from table_a where createTime = (select createTime from table_a where createTime < {$createTime} [and other_conditions] order by id desc limit 1) [and other_conditions];
查询下一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误):
1
select * from table_a where createTime= (select createTime from table_a where createTime > {$createTime} [and other_conditions] order by id asc limit 1) [and other_conditions];


然后加上一些条件,不然可能在有同一时间的其他的数据

 

然后把获取的数据返回到界面,点击上一页和下一页的时候就和从列表页查看详情一个道理。

 

但是我觉得我的代码还是需要优化,感觉很多时候思路绕了很多弯,不知道这个要怎么破?好像只能多多写代码了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值