java分页 批量删除,mybatis中mappper写分页查询和批量删除的方法

用mybatis做项目非常方便,因为它解放了dao的实现类,并且在生成的mapper文件中已有一些基础的被大量使用的对数据库增删改查的语句。让我们编程开发更加注重业务逻辑这块重点。

现在来总结一下我在项目编程中遇到分页查询和批量删除这两个点的解决办法。

使用框架:springMVC+mybatis+mysql

1.分页查询

基础的sql语句如下:

select * from tableName limit #{ (page-1)*pagesize },#{pageSize}

其中tablename即表名。

两个参数。其中page表示起始页,pageSize表示每页显示的数据行数。

limit关键字的意思就是从哪里开始总共查询多少行了。

例如select * from tableName limit  1,5

即表示从第2行开始到第5行的数据

注意是从第2行开始,这就可以解释page=1的问题了,因为数据库是从limit 紧跟着后面参数加1行开始查询的,因此page=1的时候,即从第一页第一行开始查。

另外,提一下oracle的分页语句格式为:

select  * from(select a.*,rownum r from tablename a where 1=1 and 查询条件) where r((page-1)*pageSize)

这里用到了rownum这个参数,是一个嵌套查询语句,至少在这里看上去没有,mysql方便。

2.批量删除

基本的sql语句先贴出来:

DELETE FROM 表名 WHERE id IN

separator="," close=")">

#{item}

其中标签学过jsp的应该挺眼熟,是的,就是遍历的作用。传进来的collection="list",其中list就是被遍历的参数,就是你要批量删除选中的一个或多个id的集合。

通过foreach遍历集合,每个item是遍历出来的一个id,再根据id依次删除表中对应id行的内容。

具体实现代码贴图所示。

mapper.xml:

0c9da7f3fd48b4a636676dbdca623390.png

dao接口方法:

2731246ef0b39a79ee6957eedbe4f7af.png

service层方法:

1a93c25c66f222ffe30cf9a912ec1a53.png

controller中方法:

3053e5ff43f8188d7c060421d291d5a1.png

好了,说完了批量删除,也可以看看其他的批量操作。模板是一样的。

批量更新:

update tablename

age = #{item.age}+1,name=#{item.name}

where id = #{item.id};

批量插入:

要注意的是mysql和oracle批量插入的语句有差别。

mysql:

INSERT INTO STUDENT (id,name,sex,tel,address)

VALUES

(#{item.id},#{item.name},#{item.sex},#{item.tel},#{item.address})

oracle:

insert into aa(a,b)

select  #{item.a},#{item.b} from dual

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值