mybatis-generator两种使用方式:pom-plugin和main方法配置

一、             MyBatis Generator介绍

  1. 是一个Mybatis和iBatis的代码生成器。通过MyBatis Generator可以根据数据库表生成相应的实体、sql映射文件、Dao等

与表结构匹配的Java POJO。这可能包括:

一个关于表主键的类(如果表有主键)

一个关于表非主键字段的类(BLOB字段除外)

一个包含表BLOB字段的类(如果表有BLOB字段)

一个支持动态查询、修改和删除的类

  1. MyBatis或iBATIS兼容的SQL映射XML文件。MBG为配置中指定的每个表的简单CRUD函数生成SQL,生成的SQL语句包括:

通过主键更新

通过动态where子句更新

通过主键删除

通过动态where子句删除

通过主键查询

通过动态where子句查询

通过动态where子句查询条数

  1. 在迭代开发过程中使用MyBatis Generator的注意事项:

如果存在与新生成的XML文件具有相同名称的现有文件,MBG将自动合并XML文件,合并时,MBG不会覆盖你在XML文件中添加的任何内容。你可以重复生成而不用担心丢失XML文件中你添加的内容,MBG只替换通过MBG生成的任何XML元素。

MBG不会合并Java文件,它可以覆盖现有文件或使用不同的唯一名称保存新生成的文件(文件名后加1、2、3等序号)。如果重复生成可以选择自动覆盖替换或手动合并更改。

二、             MyBatis Generator实现方式

mybatis-generator两种使用方式pom-plugin、main方法

1.     使用Maven plugin生成

(1)   pom.xml

<build>

        <plugins>

            <plugin>

                <groupId>org.mybatis.generator</groupId>

                <artifactId>mybatis-generator-maven-plugin</artifactId>

                <version>1.3.4</version>

                <configuration>

                    <configurationFile>${basedir}/src/main/resources/mybatis-generator.xml</configurationFile>

                    <overwrite>true</overwrite>

                    <verbose>true</verbose>

                </configuration>

                <dependencies>

                    <dependency>

                        <groupId>mysql</groupId>

                        <artifactId>mysql-connector-java</artifactId>

                        <version>5.1.46</version>

                   </dependency>

             </dependencies>

          </plugin>

      </plugins>

</build>

(2)     src/main/resources/mybatis-generator.xml

<?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>

    <context id="MysqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">

        <property name="beginningDelimiter" value="`"/>

        <property name="endingDelimiter" value="`"/>

        <!--<plugin type="tk.mybatis.mapper.generator.MapperPlugin">

            <property name="mappers" value="cn.xiaows.app.util.MyMapper"/>

        </plugin>-->

        <jdbcConnection driverClass="com.mysql.jdbc.Driver"

                        connectionURL="jdbc:mysql://localhost:3306/mydb"

                        userId="root"

                        password="123456"/>

        <!-- 对于生成的entity所在包 -->

        <javaModelGenerator targetPackage="cn.app.entity0" targetProject="src/main/java"/>

        <!-- 对于生成的mapper所在目录 -->

        <sqlMapGenerator targetPackage="mapper0" targetProject="src/main/resources"/>

        <!-- 配置mapper对应的java映射 -->

        <javaClientGenerator targetPackage="cn. app.dao0" targetProject="src/main/java" type="XMLMAPPER" />

        <table tableName="%"/><!-- 所有表 -->

        <!--<table tableName="company" mapperName="CompanyDao"/>-->

        <!--<table tableName="user" mapperName="UserDao"/>-->

        <!--...-->

    </context>

</generatorConfiguration>

(3)   生成命令:(maven)或直接运行maven的generator插件

mybatis-generator:generate -f pom.xml

2.     使用main方法生成

(1)   pom.xml

 

<dependencies>

        <!-- mysql -->

        <dependency>

            <groupId>mysql</groupId>

            <artifactId>mysql-connector-java</artifactId>

            <version>5.1.46</version>

        </dependency>

        <!-- mybatis-generator -->

        <dependency>

            <groupId>org.mybatis.generator</groupId>

            <artifactId>mybatis-generator-core</artifactId>

            <version>1.3.4</version>

            <scope>compile</scope>

            <optional>true</optional>

        </dependency>

    </dependencies>

(2)   MybatisGeneratorMain.java

public class MybatisGeneratorMain {

    public static void main(String[] args) throws Exception {

        List<String> warnings = new ArrayList<>();

        ConfigurationParser cp = new ConfigurationParser(warnings);

        Configuration config = cp.parseConfiguration(new File("app-logs-web/src/main/resources/mybatis-generator.xml"));

        // Configuration config = cp.parseConfiguration(ClassLoader.getSystemResourceAsStream("mybatis-generator.xml"));

        DefaultShellCallback callback = new DefaultShellCallback(true);

        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);

        myBatisGenerator.generate(null);

        for (String warning : warnings) {

            System.out.println(warning);

        }

    }

}

(3)   mybatis-generator.xml

<?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>

    <context id="MysqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">

        <property name="beginningDelimiter" value="`"/>

        <property name="endingDelimiter" value="`"/>

        <!--<plugin type="tk.mybatis.mapper.generator.MapperPlugin">

            <property name="mappers" value="cn.xiaows.app.util.MyMapper"/>

        </plugin>-->

        <jdbcConnection driverClass="com.mysql.jdbc.Driver"

                        connectionURL="jdbc:mysql://localhost:3306/mydb"

                        userId="root"

                        password="123456">

        </jdbcConnection>

        <!-- 对于生成的entity所在包 -->

        <javaModelGenerator targetPackage="cn.xiaows.app.entity" targetProject="app-logs-web/src/main/java"/>

        <!-- 对于生成的mapper所在目录 -->

        <sqlMapGenerator targetPackage="mapper" targetProject="app-logs-web/src/main/resources"/>

        <!-- 配置mapper对应的java映射 -->

        <javaClientGenerator targetPackage="cn.xiaows.app.dao" targetProject="app-logs-web/src/main/java" type="XMLMAPPER" />

        <table tableName="%"/><!-- 所有表 -->

        <!--<table tableName="user" mapperName="UserDao"/>-->

        <!--<table tableName="project" mapperName="ProjectDao"/>-->

        <!--...-->

    </context>

</generatorConfiguration>

(4)       springboot启动类:AppLogApplication.java

@SpringBootApplication

@MapperScan("cn.app.dao")

public class AppLogApplication {

    public static void main(String[] args) {

        SpringApplication.run(AppLogsWebApplication.class, args);

    }

}

猜你喜欢

转载自www.cnblogs.com/newxu/p/12185068.html