美文网首页
2019-06-14 mybatis注解批量插入批量删除操作

2019-06-14 mybatis注解批量插入批量删除操作

作者: 小苏c | 来源:发表于2019-06-14 17:50 被阅读0次

@Component

@Mapper

public interface StudentMapper {

    @Insert("INSERT INTO student (name, sex, addr) VALUES (#{name}, #{sex}, #{addr})")

    int insert(Student stu);

    @InsertProvider(type = Provider.class, method = "batchInsert")

    int batchInsert(List<Student> students);

    @Select("SELECT * FROM student WHERE id = #{id}")

    Student selectById(@Param("id") int id);

    @DeleteProvider(type = Provider.class, method = "batchDelete")

    int batchDelete(List<Student> students);

    @Select("SELECT * FROM student")

    List<Student> selectAll();

    class Provider {

        /* 批量插入 */

        public String batchInsert(Map map) {

            List<Student> students = (List<Student>) map.get("list");

            StringBuilder sb = new StringBuilder();

            sb.append("INSERT INTO student (name,sex,addr) VALUES ");

            MessageFormat mf = new MessageFormat(

                    "(#'{'list[{0}].name}, #'{'list[{0}].sex}, #'{'list[{0}].addr})"

            );

            for (int i = 0; i < students.size(); i++) {

                sb.append(mf.format(new Object[] {i}));

                if (i < students.size() - 1)

                    sb.append(",");

            }

            return sb.toString();

        }

        /* 批量删除 */

        public String batchDelete(Map map) {

            List<Student> students = (List<Student>) map.get("list");

            StringBuilder sb = new StringBuilder();

            sb.append("DELETE FROM student WHERE id IN (");

            for (int i = 0; i < students.size(); i++) {

                sb.append("'").append(students.get(i).getId()).append("'");

                if (i < students.size() - 1)

                    sb.append(",");

            }

            sb.append(")");

            return sb.toString();

        }

    }

}

相关文章

  • mybatis批量插入,control中传入参数为

    关于mybatis批量问题,见之前文章mybatis批量插入、批量更新和批量删除mybatis批量新增,插入的数据...

  • mybatis批量插入、批量更新和批量删除

    MyBatis批量插入数据[Mybatis 插入与批量插入以及多参数批量删除](http://www.cnblog...

  • 2019-06-14 mybatis注解批量插入批量删除操作

    @Component @Mapper public interface StudentMapper { @In...

  • mybatis+oracle 批量操作

    在mybatis中,对于oracle的批量操作有点特殊,用到了就记一下。 批量插入 批量插入(带序列) 批量插入(...

  • 注解版Mybatis 批量查询,插入(更新暂不支持)

    注解版 Mybatis 3.1.1 不支持