MyBatis逆向工程生成映射文件和实体类

在使用SSM框架编写项目的过程中我们常常会需要编写实体类以及映射文件,如果我们不使用逆向工程的话就大大增加了工作时间同时降低了工作效率,使我们需要花费大量的时间精力去创建这些文件。这个时候我们就可以使用MyBatis的逆向工程自动生成这些文件,可以为我们节省很多时间去做更重要的事情。

下载项目

整个项目已经上传至GitHub中,大家可以去下载。
下载generatorSqlmapCustom项目,导入到eclipse中。

GitHub下载地址:https://github.com/J1AngRui/generatorSqlmapCustom

配置信息

接下来就讲解几个重要配置信息同时也是经常有变动的地方。

generatorConfig.xml

<generatorConfiguration>
<!--导入属性配置 -->
<properties resource="db.properties"></properties>
    
<context id="testTables" targetRuntime="MyBatis3">
    <!-- JavaBean 实现 序列化 接口 -->
    <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
    <!-- genenat entity时,生成toString -->
    <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
    <commentGenerator>
    <!-- 是否去除自动生成的注释 true:是 : false:否 -->
    <property name="suppressAllComments" value="true" />
    </commentGenerator>
    <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
    <jdbcConnection driverClass="${jdbc.driverClass}" connectionURL="${jdbc.connectionURL}" userId="root" password="root">
    </jdbcConnection>
    <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal -->
    <javaTypeResolver>
        <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>
    <!-- targetProject:生成PO类的位置 -->
    <javaModelGenerator targetPackage="${package.pojo}" targetProject=".src">
        <!-- enableSubPackages:是否让schema作为包的后缀 -->
        <property name="enableSubPackages" value="false" />
        <!-- 从数据库返回的值被清理前后的空格 -->
        <property name="trimStrings" value="true" />
    </javaModelGenerator>
    <!-- targetProject:mapper映射文件生成的位置 -->
    <sqlMapGenerator targetPackage="${package.mapper}" targetProject=".src">
        <!-- enableSubPackages:是否让schema作为包的后缀 -->
        <property name="enableSubPackages" value="false" />
    </sqlMapGenerator>
    <!-- targetPackage:mapper接口生成的位置 -->
    <javaClientGenerator type="XMLMAPPER" targetPackage="${package.mapper}" targetProject=".src">
        <!-- enableSubPackages:是否让schema作为包的后缀 -->
        <property name="enableSubPackages" value="false" />
    </javaClientGenerator>
    <!-- 指定数据库表 -->
    
</context>
</generatorConfiguration>

设置需要生成实体类的数据库表,编写在generatorConfig.xml的最后:

<table schema="" domainObjectName="TravelShopList" tableName="travel_shop_list"></table>
下面对代码参数进行说明:
schema:数据库的schema。如果设置了该值,生成SQL的表名会变成如schema.tableName的形式。
domainObjectName:生成实体类的类名。如果没有指定,MBG会自动根据表名来生成名称。
tableName:指定要生成的数据库表名。
schematableName都可以使用SQL通配符符匹配。
如果想生成全部的表,可以使用配置:<table tableName="%" />

db.properties

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.connectionURL=jdbc:mysql://192.168.0.164:3306/bbgint
jdbc.userId=root
jdbc.password=root

package.pojo=com.htpoints.travel.pojo
package.mapper=com.htpoints.travel.mapper

这个配置文件分两部分:
第一部分就是jdbc的数据库连接,这个相信大家应该都知道;
第二部分就是最后两句代码,这里就是设置生成实体类及映射文件所在的包名,这里大家根据自身情况随意设置了。

package.pojo:指定实体类包名
package.mapper:指定映射文件包名

启动项目

在对上面两个配置文件进行修改后就可以启动项目生成文件了,找到GeneratorSqlmap.java文件运行main方法就完成了,下面是我启动的其中一种方法:

右键 - Run As - Java Application

启动后在项目中找到你想要的文件就说明已经生成成功了,在实际项目开发中数据库中的表以及字段会有非常多,如果继续使用手动编写实体类映射文件,在大量数据库表字段的情况下我们可能创建这些东西都需要花上一天的时间,那么在使用逆向工程后生成这些文件就只需要几分钟的时间,可以很大的提高工作效率。

Last modification:January 24th, 2019 at 02:41 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment