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 早

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
好的,这里给您展示一下使用MyBatis注解方式编写DAO和Mapper的示例代码: **1. DAO层代码:** ```java public interface UserDao { @Select("SELECT * FROM user WHERE id = #{id}") User getUserById(int id); @Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})") @Options(useGeneratedKeys = true, keyProperty = "id") int addUser(User user); @Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}") int updateUser(User user); @Delete("DELETE FROM user WHERE id = #{id}") int deleteUser(int id); } ``` **2. Mapper层代码:** ```java @Mapper public interface UserMapper { @Select("SELECT * FROM user WHERE id = #{id}") User getUserById(@Param("id") int id); @Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})") @Options(useGeneratedKeys = true, keyProperty = "id") int addUser(User user); @Update("UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id}") int updateUser(User user); @Delete("DELETE FROM user WHERE id = #{id}") int deleteUser(@Param("id") int id); } ``` 以上代码中,使用了MyBatis注解方式编写了DAO接口和Mapper接口。其中, - @Select:查询操作; - @Insert:新增操作; - @Update:修改操作; - @Delete:删除操作; - @Options:设置自动生成主键时的属性。 需要注意的是,使用注解方式时,需要在启动类上添加@MapperScan注解,指定Mapper接口所在的包路径,如下所示: ```java @SpringBootApplication @MapperScan("com.example.mapper") public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } ``` 这样就可以使用MyBatis注解方式编写DAO和Mapper了。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值