您的位置:首页 > 移动开发

使用mybatis-generator生成自动生成mapper.java和mapper.xml等文件

2018-02-07 17:05 831 查看
首先,新建一个maven项目







groupid和artifactId被统称为“坐标”,可以保证项目的唯一性,可以根据这两个id去maven本地仓库中查找到任意项目.
groupId对应JAVA的包的结构,是main目录里java的目录结构。 一般分为多个段,这里说明前两段:第一段是域,第二段是公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。
artifactId是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。
就如我所在的公司京颐集团,缩写为kyee,公司的产品groupId就是com.kyee,因为公司产品是盈利性质的;再如apache公司的tomcat项目:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。
按照这个规则,我所创建的项目,groupId为cn.qizi,cn表示域为中国,qizi是我的网络常用名。artifactId设置为testMybatisGenerator,是此项目的名称。依照这个设置,我的包结构最好是cn.qizi.testMybatisGenerator打头的,如果有个StudentDao,它的全路径就是cn.qizi.testMybatisGenerator.dao.StudentDao。





项目生成,接下来就是增加下面图中结构,用以存放各层文件



到这里,项目的架子就已经搭起来了,我们也该进入正题,讲解如何使用mybatis-generator生成自动生成mapper.java和mapper.xml等文件
首先要配置pom.xml,加载mybatis-generator插件和依赖。在pom.xml文件中增加:

    <build>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.2</version>
                    </dependency>
                    <dependency>
                        <groupId>com.oracle</groupId>
                        <artifactId>ojdbc6</artifactId>
                        <version>11.2.0.1.0</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
按照路径src/main/resources/generatorConfig.xml创建配置文件,配置文件中引入了db.properties.



generatorConfig.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>

    <!--导入属性配置,也可不引入,则下面数据库连接的信息要直接写出 -->
    <properties resource="db.properties"></properties>

    <context id="testTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是; false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="${jdbc.driver}"
                        connectionURL="${jdbc.url}"
                        userId="${jdbc.username}"
                        password="${jdbc.password}">
        </jdbcConnection>

        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
            NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- targetProject:生成PO类的位置 -->
        <javaModelGenerator targetPackage="cn.qizi.testMybatisGenerator.pojo"
                            targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- targetProject:mapper映射文件生成的位置 -->
        <sqlMapGenerator targetPackage="cn.qizi.testMybatisGenerator.mapper"
                         targetProject="src/main/resources">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        <!-- targetPackage:mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="cn.qizi.testMybatisGenerator.dao"
                             targetProject="src/main/java">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        <!-- 指定数据库表 -->

        <table schema="" tableName="PAY_TRANSACTION_DETAIL"/>

        <!-- 有些表的字段需要指定java类型
         <table schema="" tableName="">
            <columnOverride column="" javaType="" />
        </table> -->
    </context>
</generatorConfiguration>

db.properties文件内容:
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@192.168.20.250:1521:orcl
jdbc.username=xxxxxx
jdbc.password=xxxxxx

到此,便配置完成,可以生成相关文件了:



然后你会发现,你想要的文件已经出现:



希望本文能帮到像我一样的菜鸟,同样希望大神看到,见笑之余,能不吝赐教,解答下一直困扰我的问题:
1.就是按照此流程生成的.xml文件,内容重复了三遍,每次都要我手动删除;
2.使用这些自动生成的文件进行单表查询还算方便,但对于多表关联查询就很麻烦了,有什么好的解决办法么?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐