MyBatis로 사용하는 방법 적절한

  1. MyBatis로 발전기 + 플러그인

별도의 발전기는 플러그인의 다양한 모든 인공 피할 수없는 것은, 프로젝트에 감사하지
itfsw / MyBatis로 발전기 - 플러그인

다음과 같이 사용합니다 :

pom.xml 파일

    <dependencies>
        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${springboot.mybatis.version}</version>
        </dependency>
        <dependency>
            <groupId>com.itfsw</groupId>
            <artifactId>mybatis-generator-plugin</artifactId>
            <version>${mybatis.generator.itfsw.version}</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>qna-deploy</finalName>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>${mybatis.generator.version}</version>
                <dependencies>
                    <dependency>
                        <groupId> mysql</groupId>
                        <artifactId> mysql-connector-java</artifactId>
                        <version> 5.1.39</version>
                    </dependency>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>${mybatis.generator.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>com.itfsw</groupId>
                        <artifactId>mybatis-generator-plugin</artifactId>
                        <version>${mybatis.generator.itfsw.version}</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>Generate MyBatis Artifacts</id>
                        <phase>deploy</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!--允许移动生成的文件 -->
                    <verbose>true</verbose>
                    <!-- 是否覆盖 -->
                    <overwrite>true</overwrite>
                    <!-- 自动生成的配置 -->
                    <configurationFile>
                        src/main/resources/mybatis-generator.xml</configurationFile>
                </configuration>
            </plugin>
        </plugins>
    </build>

MyBatis로-generator.xml 여기 내 자신의 프로젝트의 상황에 따라 일부 플러그인 프로파일을 선택, 더 플러그인은 위에 주어진 github의 링크를 볼 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <!--数据库驱动-->
    <!--<classPathEntry    location="mysql-connector-java-5.1.16-bin.jar"/>-->
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!-- 查询单条数据插件(selectOne) -->
        <plugin type="com.itfsw.mybatis.generator.plugins.SelectOneByExamplePlugin"/>
        <!-- Example Criteria 增强插件(可以使用.example()方法) -->
        <plugin type="com.itfsw.mybatis.generator.plugins.ExampleEnhancedPlugin"/>
        <!-- 数据Model属性对应Column获取插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.ModelColumnPlugin"/>
        <!-- 批量插入插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.BatchInsertPlugin"/>
        <!-- 存在即更新插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.UpsertPlugin">
            <!--
            支持upsertByExample,upsertByExampleSelective操作
            !需开启allowMultiQueries=true多条sql提交操作,所以不建议使用!插件默认不开启
            -->
            <property name="allowMultiQueries" value="false"/>
            <!--
            开启批量功能,支持batchUpsert,batchUpsertWithBLOBs,batchUpserSelective
            !这几个方法中无法支持IncrementsPlugin的方法!插件默认不开启
            -->
            <property name="allowBatchUpsert" value="true"/>
        </plugin>
        <!-- Lombok插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.LombokPlugin">
            <!-- @Data 默认开启,同时插件会对子类自动附加@EqualsAndHashCode(callSuper = true),@ToString(callSuper = true) -->
            <property name="@Data" value="true"/>
            <!-- @Builder 必须在 Lombok 版本 >= 1.18.2 的情况下开启,对存在继承关系的类自动替换成@SuperBuilder -->
            <property name="@Builder" value="false"/>
            <!-- @NoArgsConstructor 和 @AllArgsConstructor 使用规则和Lombok一致 -->
            <property name="@AllArgsConstructor" value="true"/>
            <property name="@NoArgsConstructor" value="true"/>
            <!-- @Getter、@Setter、@Accessors 等使用规则参见官方文档 -->
            <property name="@Accessors(chain = true)" value="false"/>
            <!-- 临时解决IDEA工具对@SuperBuilder的不支持问题,开启后(默认未开启)插件在遇到@SuperBuilder注解时会调用ModelBuilderPlugin来生成相应的builder代码 -->
            <property name="supportSuperBuilderForIdea" value="false"/>
        </plugin>
        <!-- 状态枚举生成插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.EnumTypeStatusPlugin"/>
        <!-- Mapper注解插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.MapperAnnotationPlugin">
            <!-- @Mapper 默认开启 -->
            <property name="@Mapper" value="true"/>
            <!-- @Repository 默认关闭,开启后解决IDEA工具@Autowired报错 -->
            <property name="@Repository" value="true"/>
        </plugin>
        <!-- Example 目标包修改插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.ExampleTargetPlugin">
            <!-- 修改Example类生成到目标包下 -->
            <property name="targetPackage" value="com.huya.qna.entity.example"/>
        </plugin>
        <!-- 逻辑删除插件 -->
        <plugin type="com.itfsw.mybatis.generator.plugins.LogicalDeletePlugin">
            <!-- 这里配置的是全局逻辑删除列和逻辑删除值,当然在table中配置的值会覆盖该全局配置 -->
            <!-- 逻辑删除列类型只能为数字、字符串或者布尔类型 -->
            <property name="logicalDeleteColumn" value="is_del"/>
            <!-- 逻辑删除-已删除值 -->
            <property name="logicalDeleteValue" value="1"/>
            <!-- 逻辑删除-未删除值 -->
            <property name="logicalUnDeleteValue" value="0"/>
            <!-- 是否生成逻辑删除常量(只有开启时 logicalDeleteConstName、logicalUnDeleteConstName 才生效) -->
            <property name="enableLogicalDeleteConst" value="true"/>
            <!-- 逻辑删除常量名称,不配置默认为 IS_DELETED -->
            <property name="logicalDeleteConstName" value="IS_DELETED"/>
            <!-- 逻辑删除常量(未删除)名称,不配置默认为 NOT_DELETED -->
            <property name="logicalUnDeleteConstName" value="NOT_DELETED"/>
        </plugin>

        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--数据库链接地址账号密码-->
        <!--        added by [email protected]:在本地generate相关代码-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://00.00.00.00:3306/db_name?useUnicode=true&amp;useSSL=false"
                        userId="balabalabala" password="balabalabala">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!--生成Model类存放位置-->
        <javaModelGenerator targetPackage="com.huya.qna.entity" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!--生成xml文件存放位置-->
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
        <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!--生成Mapper类存放位置,可选纯注解模式或使用配置文件模式-->
<!--        <javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="com.huya.qna.mapper"-->
<!--                             targetProject="src/main/java">-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.huya.qna.mapper"
                             targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!--生成对应表及类名-->
        <table tableName="qna_history" domainObjectName="History"
               enableInsert="true"
               enableSelectByPrimaryKey="true"
               enableSelectByExample="true"
               enableUpdateByPrimaryKey="true"
               enableUpdateByExample="true"
               enableDeleteByPrimaryKey="true"
               enableDeleteByExample="true"
               enableCountByExample="true"
               selectByExampleQueryId="false">
            <!--插入此配置则insert后自动填充主键-->
            <generatedKey column="id" sqlStatement="MySql" identity="true"/>
        </table>
    </context>
</generatorConfiguration>

이 구성 파일에 대한 몇 가지 포인트가 있습니다 :

  1. 당신이 github의 플러그인을 사용하려면, 대신 구성 파일 주석 모드 모드를 사용해야합니다.
  2. 자동으로 적절한 오브젝트에 직접 기록 된 기본 키 테이블 채우기를 설정합니다.
  3. 이용 카테고리가 별도의 플러그를 유지되지 후 없음 재설정 테이블 유형 범주, 사실, 얼룩이 만 해당 동작 모드 클래스를 생성하지 않습니다, 범주를 얻을 수없는 비 BLOBS 필드 방법을 사용해야합니다.

그 후, 스프링 구성 파일

mybatis.mapper-locations=classpath:mapper/*Mapper.xml

드루이드 경우, 자세한 후에 일시적으로 약간 구성 드루이드을 따르도록해야합니다

추천

출처www.cnblogs.com/cielosun/p/11365252.html