【Mybatis】Mybatis-Generator-batch Delete(一括削除)メソッドプラグイン

30357 ワード

記事の目次
  • シリーズ
  • クライテリア
  • 装備
  • Core-Core
  • sql
  • mybatis-mplement
  • plugin-code
  • plugin-common-tool
  • 使用方法
  • generatoConfig.xml
  • pom.xml
  • Github
  • 著者
  • シリーズ
  • 【Mybatis】Mybatis-Generator-Paost gresqlはメインキープラグイン
  • に戻ります.
  • 【Mybatis】Mybatis-Generator-Oracleは、メインキープラグイン
  • に戻る.
  • 【Mybatis】Mybatis-Generator-batDelete(一括削除)メソッドプラグイン
  • [Mybatis]Mybatis-Generator-Paost gresql&Mysql(一括追加)メソッドプラグイン
  • [Mybatis]Mybatis-Generator-Oracle(一括追加)メソッドプラグイン
  • [Mybatis]Mybatis-Generator-Myysql(一括更新)メソッドプラグイン
  • [Mybatis]Mybatis-Generator-Paost gresql(一括更新)メソッドプラグイン
  • [Mybatis]Mybatis-Generator-Oracle(一括更新)メソッドプラグイン
  • 【Mybatis】Mybatis-Generator-Tool JavaとXmlのMethodツールクラス
  • 前言
    一括削除SQLは簡単で一般的ですので、プラグインも簡単です.コアコードを貼り付けます.他にGITHUBを見てください.
    ギthubではmybatis-generatorに対してまだいろんなタイプのプラグインがあります.本当に怠惰に見ています.そして複雑な機能が多すぎて、私は簡単に自分の必要なものを作ります.
    装備
  • maven
    <dependencies>
        
        <dependency>
            <groupId>org.mybatisgroupId>
            <artifactId>mybatisartifactId>
            <version>3.4.6version>
        dependency>
    
        
        <dependency>
            <groupId>org.mybatis.generatorgroupId>
            <artifactId>mybatis-generator-coreartifactId>
            <version>1.3.7version>
        dependency>
    dependencies>
    
  • Core-Coode
    sql
      delete from T_HUI_ORDER where ORDER_ID in(?,?,?);
    
    mybatis-mplement
      <delete id="batchDelete" parameterType="java.lang.String">
        delete from T_HUI_ORDER where ORDER_ID in (
        <foreach collection="ids" index="index" item="item" separator=",">
          #{item}
        foreach>
        )
      delete>
    
    plugin-code
    /**
     * BatchDeletePlugin
     * 
     * Description:
     * 
     * Creation Time: 2018/12/10 0:48.
     *
     * @author HuWeihui
     */
    public class BatchDeletePlugin extends PluginAdapter {
    
        private final static String BATCH_DELETE = "batchDelete";
    
        private final static String PARAMETER_NAME = "ids";
    
        @Override
        public boolean validate(List<String> list) {
            return true;
        }
    
    
        @Override
        public boolean clientGenerated(Interface interfaze, TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
            if (BaseGenTool.isMybatisMode(introspectedTable)) {
                MethodGeneratorTool.defaultBatchDeleteMethodGen(interfaze,introspectedTable,context);
            }
            return super.clientGenerated(interfaze, topLevelClass, introspectedTable);
        }
    
        @Override
        public boolean sqlMapDocumentGenerated(Document document, IntrospectedTable introspectedTable) {
            if (introspectedTable.getTargetRuntime().equals(IntrospectedTable.TargetRuntime.MYBATIS3)){
                addSqlMapper(document, introspectedTable);
            }
            return super.sqlMapDocumentGenerated(document, introspectedTable);
        }
    
    
        /**
         *      xml    
         * @param document
         * @param introspectedTable
         */
        private void addSqlMapper(Document document, IntrospectedTable introspectedTable){
            String tableName = introspectedTable.getFullyQualifiedTableNameAtRuntime();
    
            String key = introspectedTable.getPrimaryKeyColumns().get(0).getActualColumnName();
    
            String baseSql = String.format("delete from %s where %s in (",tableName,key);
    
            FullyQualifiedJavaType paramType = introspectedTable.getPrimaryKeyColumns().get(0).getFullyQualifiedJavaType();
    
            XmlElement deleteElement = SqlMapperGeneratorTool.baseElementGenerator(SqlMapperGeneratorTool.DELETE, BATCH_DELETE,paramType);
    
            XmlElement foreachElement = SqlMapperGeneratorTool.baseForeachElementGenerator(PARAMETER_NAME,"item","index",null);
    
            deleteElement.addElement(new TextElement(baseSql));
    
            foreachElement.addAttribute(new Attribute("separator", ","));
    
            foreachElement.addElement(new TextElement("#{item}"));
    
            deleteElement.addElement(foreachElement);
    
            deleteElement.addElement(new TextElement(")"));
    
            document.getRootElement().addElement(deleteElement);
        }
    }
    
    
    plugin-common-tool
    プラグインの一般的な方法/ツール、上記の生成方法はツールの種類に基づいて、下のブログはソースコードがあります.本当に必要なのはgithubを見ることができます.
    【Mybatis】Mybatis-Generator-Taol JavaとXmlのMethodツール類を生成する
    使い方
    generator Config.xml
    
    <plugin type="com.hui.mybatis.plugins.BatchDeletePlugin"/>
    
    pom.xml
    <build>
            <plugins>
                <plugin>
                    <groupId>org.mybatis.generatorgroupId>
                    <artifactId>mybatis-generator-maven-pluginartifactId>
                    <version>${mybatis.generator}version>
                    <configuration>
                        
                        <configurationFile>
                            ${basedir}/src/main/resources/generator/generatorConfig.xml
                        configurationFile>
                        
                        <verbose>trueverbose>
                        
                        <overwrite>trueoverwrite>
                    configuration>
                    <dependencies>
                        
                        <dependency>
                            <groupId>org.mybatis.generatorgroupId>
                            <artifactId>mybatis-generator-coreartifactId>
                            <version>${mybatis.generator}version>
                        dependency>
    
                        
                        <dependency>
                            <groupId>com.hui.mybatis.pluginsgroupId>
                            <artifactId>hui-mybatis-pluginsartifactId>
                            <version>0.0.1-SNAPSHOTversion>
                        dependency>
    
                        
                        <dependency>
                            <groupId>mysqlgroupId>
                            <artifactId>mysql-connector-javaartifactId>
                            <version>5.1.44version>
                        dependency>
    
                        
                        <dependency>
                            <groupId>com.oraclegroupId>
                            <artifactId>ojdbc6artifactId>
                            <version>11.1.0.7.0version>
                        dependency>
    
                        
                        <dependency>
                            <groupId>org.postgresqlgroupId>
                            <artifactId>postgresqlartifactId>
                            <version>${postgresql.version}version>
                        dependency>
    
                    dependencies>
                plugin>
            plugins>
        build>
    
    Github
    https://github.com/ithuhui/hui-mybatis-plugins/tree/master/src/main/java/com/hui/mybatis/plugins
    作者
       :HuHui
       :      web      ,            ,