MyBatis通过注解方式批量添加、修改、删除

唯能极于情,故能极于剑

MyBatis通过注解方式批量添加、修改、删除! !!!
注:本文转载于:CodeCow · 程序牛 的个人博客:http://www.codecow.cn/

一、数据库实体DO

public class User implements Serializable {
    private Long 	id;        //用户ID
    private String 	name;      //用户姓名
    private Integer age;       //用户年龄
    .......
}

二、数据库操作

2.1、批量插入用户

    @Insert("<script>"  +
                "insert into user(id, name, age) VALUES " +
                "<foreach collection='list' item='item' index='index' separator=','> " +
                    "(#{item.id},#{item.name},#{item.age}) " +
                "</foreach>" +
            "</script>")
    void batchInsert(@Param("list")List<User> list); //批量添加用户
    

2.2、批量修改用户

    @Update({"<script>"  +
                "<foreach collection='list' item='item' index='index' open='(' separator=',' close=')'> " +
                    "update user set name= #{item.name}, age= #{item.age} " +
                    "where id = #{item.id} " +
                "</foreach>" +
            "</script>"})
    void batchUpdate(@Param("list")List<User> list);//批量修改用户
    

2.3、批量删除用户

    @Delete("<script>"  +
                "delete from user where id in " +
                "<foreach collection='array' item='id' open='('separator=',' close=')'> " +
                    "#{id}" +
                "</foreach>" +
            "</script>")
    void batchDelete(long[] ids);//批量删除用户
    
    //☆☆☆ 如何获取 long[] ids ???
    //1、获取要删除用户的集合
    List<User> user = userMapper.selectAll();//用的是tk.mybatis下获取所有用户
    //2、根据集合获取 long[] ids
         //朋友,如果你还在用遍历、创建数组等 SAO 操作.....你 OUT 了
         //让我们看看jdk8的stream流是怎么搞的:
        List<Long> idList = user.stream.map(User::getId).collect(Collectors.toList());//获取id集合     
        long[] ids = idList.stream.mapToLong(i -> i).toArray();// 获的long[] ids
       
        就两步就实现了(其实就一步),它不香吗???
        

有问题或错误请及时联系小编或关注小编公众号 “CodeCow”,小编一定及时回复和改正 啦

绳锯木断,水滴石穿 多坚持

2020/04/13 早

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值