mybatis-generator有三种用法:命令行、eclipse插件、maven插件,maven插件方式最方便。
一、在pom.xml中添加plugin
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <mybatis-generator.version>1.3.6</mybatis-generator.version> <mysql.version>5.1.13</mysql.version> <mybatis.version>3.2.4</mybatis.version> </properties> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>${mybatis-generator.version}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> </dependencies> <build> <finalName>mybatis-generator</finalName> <pluginManagement> <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>${mysql.version}</version> </dependency> </dependencies> <!-- 自动生成 --> <executions> <execution> <id>Generate MyBatis Artifacts</id> <goals> <goal>generate</goal> </goals> <configuration> <!-- 指定文件位置好像不起作用,始终默认读取src/main/resources/generatorConfig.xml文件 --> <configurationFile>src/main/resources/generatorConfig.xml</configurationFile> <!--允许移动生成的文件--> <verbose>true</verbose> <!--允许覆盖生成的文件--> <overwrite>true</overwrite> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </pluginManagement> </build>
其中generatorConfig.xml的位置,大家根据实际情况自行调整
二、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="mybatisGenerator.properties" /> <context id="MBG" targetRuntime="MyBatis3" defaultModelType="conditional"> <!-- 注意以下标签的顺序:property*,plugin*,commentGenerator?,jdbcConnection, javaTypeResolver?,javaModelGenerator,sqlMapGenerator?, javaClientGenerator?,table+ --> <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin" /> <!-- 这个插件给由MBG生成的Java模型对象增加了equals和hashCode方法 --> <plugin type="org.mybatis.generator.plugins.EqualsHashCodePlugin"/> <commentGenerator> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="false"/> <!-- 不希望生成的注释中包含时间戳 --> <property name="suppressDate" value="true" /> <!-- 是否 自动为每一个生成的类创建一个构造方法--> <property name="constructorBased" value="false"/> </commentGenerator> <!-- 数据库连接 --> <jdbcConnection driverClass="${jdbc_driver}" connectionURL="${jdbc_url}" userId="${jdbc_username}" password="${jdbc_password}"> </jdbcConnection> <!-- 指定生成的类型为java类型,避免数据库中number等类型字段 --> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 生成model模型,对应的包,存放位置可以指定具体的路径,如/ProjectName/src,也可以使用MAVEN来自动生成 --> <javaModelGenerator targetPackage="${modelPackage}" targetProject="${targetProject}"> <!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false --> <property name="enableSubPackages" value="true"/> <!-- 设置是否在getter方法中,对String类型字段调用trim()方法 --> <property name="trimStrings" value="true"/> </javaModelGenerator> <!--对应的xml mapper文件 --> <sqlMapGenerator targetPackage="${sqlMapperPackage}" targetProject="${targetProject}" > <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 对应的dao接口 --> <javaClientGenerator type="XMLMAPPER" targetPackage="${daoMapperPackage}" targetProject="${targetProject}" > <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 表名对应生成的实体 --> <table tableName="tab_user" domainObjectName="User" /> <!-- enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"> 指定是否生成操作数据库对应的方法 --> </context>
</generatorConfiguration>
三、mybatisGenerator.properties配置文件
#数据库配置 #
jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8jdbc_url=jdbc:mysql://localhost:3306/test jdbc_driver=com.mysql.jdbc.Driver
jdbc_username=root jdbc_password=root
#执行:右键 Run As ---->Maven build ---->Goals:mybatis-generator:generate
#输出目录
targetProject=src/main/java
#modelPackage,sqlMapperPackage通常一致
modelPackage=com.generator.entitys
sqlMapperPackage=com.generator.dao
daoMapperPackage=com.generator.entitys
四、执行
mvn mybatis-generator:generate