美文网首页Java进阶
Mybatis批量删除和更新,中文注释插件

Mybatis批量删除和更新,中文注释插件

作者: botmaster | 来源:发表于2017-05-07 21:53 被阅读0次

包含3个插件和一个定制的中文注释生成器

  • 批量插入插件 - com.zzh.mbg.plugin.MysqlBatchInsertPlugin
  • 批量更新插件 - com.zzh.mbg.plugin.MysqlBatchUpdatePlugin
  • 批量非空更新插件 - com.zzh.mbg.plugin.MysqlBatchUpdateSelectivePlugin
  • 中文注释生成器 - com.zzh.mbg.GeneralCommentGenerator

MGB Mysql扩展插件源码及使用说明

仅支持Mysql数据库
需要Mybatis3.3及以上版本
基于注解的方式

示例

  1. 注释
/**
 *
 * 对应数据库表: student
 */
public class Student {
    /**
     * 物理主键
     *
     * 对应表字段: student.id
     */
    private Integer id;

    /**
     * 名称
     *
     * 对应表字段: student.name
     */
    private String name;
   
    ...
}
  1. 批量插入/更新/非空更新Mapper,详见示例测试用例
    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table student
     *
     * @mbg.generated
     */
    @InsertProvider(type=StudentSqlProvider.class, method="batchInsert")
    @Options(useGeneratedKeys=true,keyProperty="id")
    int batchInsert(List<Student> list);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table student
     *
     * @mbg.generated
     */
    @UpdateProvider(type=StudentSqlProvider.class, method="batchUpdateByPrimaryKey")
    int batchUpdateByPrimaryKey(List<Student> list);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table student
     *
     * @mbg.generated
     */
    @UpdateProvider(type=StudentSqlProvider.class, method="batchUpdateSelectiveByPrimaryKey")
    int batchUpdateSelectiveByPrimaryKey(List<Student> list);
  1. 批量插入/更新/非空更新SqlProvider,详见示例测试用例

批量插入基于:

INSERT INTO table (field1,field2,field3) VALUES (value1,value2,value3), (value1,value2,value3),(value1,value2,value3)

** 批量更新基于Case When语法:**

UPDATE student
SET NAME = CASE
WHEN (id = ?) THEN
    ?
WHEN (id = ?) THEN
    ?
END,
 age = CASE
WHEN (id = ?) THEN
    ?
WHEN (id = ?) THEN
    ?
END,
 gender = CASE
WHEN (id = ?) THEN
    ?
WHEN (id = ?) THEN
    ?
END
WHERE
    (id) IN ((?),(?))

相关文章

网友评论

    本文标题:Mybatis批量删除和更新,中文注释插件

    本文链接:https://www.haomeiwen.com/subject/ecjptxtx.html