使用Maven插件(plugin)MyBatis Generator逆向工程
内容来自官网:http://www.mybatis.org/generator/index.html
generatorConfig.xml 模板(参考:http://www.mybatis.org/generator/configreference/xmlconfig.html)
<?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>元素用于将类路径位置添加到MyBatis Generator(MBG)运行的类路径中。通常用于加载数据库驱动 --> <classPathEntry location="...."/> <context id="DB2Tables" targetRuntime="MyBatis3"> <!--实体类实现实例化接口 --> <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/> <!--实体生成toString() --> <plugin type="org.mybatis.generator.plugins.ToStringPlugin"/> <!--这个插件将方法添加到Example类(实际上是Criteria内部类)以支持不区分大小写的LIKE搜索 --> <plugin type="org.mybatis.generator.plugins.CaseInsensitiveLikePlugin"/> <!--生成hashCode和equals方法 --> <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"/> <!--给每个Mapper接口添加@Mapper注解 --> <!--<plugin type="org.mybatis.generator.plugins.MapperAnnotationPlugin"/> --> <!--开启分页,接受org.apache.ibatis.session.RowBounds参数 --> <plugin type="org.mybatis.generator.plugins.RowBoundsPlugin"/> <!-- 设置连接数据库参数 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306" userId="root" password="root"> </jdbcConnection> <!-- <javaTypeResolver>元素用于定义Java类型解析器的属性。 Java Type Resolver用于根据数据库列信息计算Java类型。 如果可能的话,默认的Java Type Resolver尝试通过替换Integral类型来使JDBC DECIMAL和NUMERIC类型更易于使用(Long,Integer,Short等)。如果此行为不受欢迎,请将属性“forceBigDecimals”设置为“true”。 如果您需要与默认值不同的行为,您也可以替换您自己的实现。 该元素是<context>元素的可选子元素。 --> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 配置生成实体类(pojo,bean...)的位置,targetPackage:包名;targetProject:目标路径 --> <javaModelGenerator targetPackage="cn.liangqinghai.pojo" targetProject="src/main/java"> <!-- 是否生成带参构造器 --> <property name="constructorBased" value="false"/> <!-- 是否根据schema生成子包(有点...):参考官网 --> <property name="enableSubPackages" value="true"/> <!-- 该属性用于选择MyBatis Generator是否会生成不可变的模型类 - 这意味着类不会有“setter”方法,构造函数将接受类中每个字段的值。 如果为true,则强制使用参数化构造函数构建模型类,而不考虑“constructorBased”属性的值。 --> <property name="immutable" value="false"/> <!-- 指定超类 --> <property name="rootClass" value="java.lang.Object"/> <!-- 去除空格 --> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 配置Mapper配置xml位置 --> <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"> <!-- 与javaModelGenerator保持一致 --> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 指定Mapper接口位置,type:指定类型(ANNOTATEDMAPPER:注解【sqlMapGenerator配置不生效】,XMLMAPPER:xml配置;MIXEDMAPPER:注解和xml混合【条件查询交给xml文件,普通增删改查交给注解】) --> <javaClientGenerator type="XMLMAPPER" targetPackage="cn.lianqinghai.dao" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 配置数据库对应的表 --> <!-- tableName:表名;domainObjectName:指定类名 --> <table schema="DB2ADMIN" tableName="ALLTYPES" domainObjectName="Customer"> <!-- 【前提:命名带下划线_】是否使用驼峰命名,false代表使用,ture代表直接使用数据库字段名 --> <property name="useActualColumnNames" value="true"/> <!-- insert主键返回 --> <generatedKey column="ID" sqlStatement="MySql" identity="true"/> </table> </context> </generatorConfiguration>
pom.xml
<!-- mybatis generator 自动生成代码插件 --> <!--命令:mybatis-generator:generate--> <!--详情参考:http://www.mybatis.org/generator/running/runningWithMaven.html--> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <!--配置路径--> <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile> <!--配置中指定的类路径存在对应的Mapper或者pojo将覆盖--> <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>
插件中指定了数据库驱动依赖,generatorConfig.xml配置文件中的classPathEntry标签可以删掉
构建命令:
- mybatis-generator:generate