mybatis是目前很流行的持久层框架,其逆向工程更是大大缩减了我们的开发时间。有兴趣的可以看文档。
文档地址: http://www.mybatis.org/generator/index.html
废话不多讲,下面我们总结一下他的几种配置使用的方式(以Eclipse为例):
一、Eclipse插件安装的方式
这里的安装分为在线安装和手动安装。我们先来说手安装。
1、手动安装
下载地址:https://dl.bintray.com/mybatis/mybatis-generator
2、在线安装
eclipse在线安装mybatis generator,打开eclipse,找到help->Eclispe Mapketplace
在搜索框输入mybatis generator,然后点击go。
找到mybatis generator对应的版本,下载后然后重启eclipse即可

1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorConfiguration 3 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 4 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 5 6 <generatorConfiguration> 7 <context id="testTables" targetRuntime="MyBatis3"> 8 <commentGenerator> 9 <!-- 是否去除自动生成的注释 true:是 : false:否 --> 10 <property name="suppressAllComments" value="true" /> 11 </commentGenerator> 12 <!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> 13 <jdbcConnection driverClass="com.mysql.jdbc.Driver" 14 connectionURL="jdbc:mysql:///db_demo" userId="root" 15 password="123"> 16 </jdbcConnection> 17 <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 18 NUMERIC 类型解析为java.math.BigDecimal --> 19 <javaTypeResolver> 20 <property name="forceBigDecimals" value="false" /> 21 </javaTypeResolver> 22 23 <!-- targetProject:生成PO类的位置 --> 24 <javaModelGenerator targetPackage="com.demo.pojo" 25 targetProject=".\src"> 26 <!-- enableSubPackages:是否让schema作为包的后缀 --> 27 <property name="enableSubPackages" value="false" /> 28 <!-- 从数据库返回的值被清理前后的空格 --> 29 <property name="trimStrings" value="true" /> 30 </javaModelGenerator> 31 <!-- targetProject:mapper映射文件生成的位置 --> 32 <sqlMapGenerator targetPackage="com.demo.mapper" 33 targetProject=".\src"> 34 <!-- enableSubPackages:是否让schema作为包的后缀 --> 35 <property name="enableSubPackages" value="false" /> 36 </sqlMapGenerator> 37 <!-- targetPackage:mapper接口生成的位置 --> 38 <javaClientGenerator type="XMLMAPPER" 39 targetPackage="com.demo.mapper" 40 targetProject=".\src"> 41 <!-- enableSubPackages:是否让schema作为包的后缀 --> 42 <property name="enableSubPackages" value="false" /> 43 </javaClientGenerator> 44 <!-- 指定数据库表 --> 45 <table schema="" tableName="tb_user"></table> 46 <table schema="" tableName="tb_area"></table> 47 48 </context> 49 </generatorConfiguration> 50 51 作者:贪挽懒月 52 链接:https://www.jianshu.com/p/74ab984b4fee 53 来源:简书 54 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
在插件安装完之后,创建逆向工程文件 generatorConfig.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE generatorConfiguration 3 PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" 4 "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> 5 6 <generatorConfiguration> 7 <!--targetRuntime="MyBatis3"可以不写--> 8 <context id="testTables"> 9 <commentGenerator> 10 <!-- 是否去除自动生成的注释 true:是 : false:否 --> 11 <property name="suppressAllComments" value="true" /> 12 </commentGenerator> 13 <!--数据库连接的信息:驱动类、连接地址、用户名、密码 --> 14 <jdbcConnection driverClass="com.mysql.jdbc.Driver" 15 connectionURL="jdbc:mysql:///db_demo" userId="root" 16 password="123"> 17 </jdbcConnection> 18 <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 19 NUMERIC 类型解析为java.math.BigDecimal --> 20 <javaTypeResolver> 21 <property name="forceBigDecimals" value="false" /> 22 </javaTypeResolver> 23 24 <!-- 生成的po类:targetPackage targetProject:工程名+src --> 25 <javaModelGenerator targetPackage="com.demo.pojo" 26 targetProject="工程名\src"> 27 <!-- enableSubPackages:是否让schema作为包的后缀 --> 28 <property name="enableSubPackages" value="false" /> 29 <!-- 从数据库返回的值被清理前后的空格 --> 30 <property name="trimStrings" value="true" /> 31 </javaModelGenerator> 32 <!-- targetProject:mapper映射文件生成的位置 --> 33 <sqlMapGenerator targetPackage="com.demo.mapper" 34 targetProject="工程名/src/com/demo/mapper"> 35 <!-- enableSubPackages:是否让schema作为包的后缀 --> 36 <property name="enableSubPackages" value="false" /> 37 </sqlMapGenerator> 38 <!-- targetPackage:mapper接口生成的位置 --> 39 <javaClientGenerator type="XMLMAPPER" 40 targetPackage="com.demo.mapper" 41 targetProject="工程名/src/com/demo/mapper"> 42 <!-- enableSubPackages:是否让schema作为包的后缀 --> 43 <property name="enableSubPackages" value="false" /> 44 </javaClientGenerator> 45 <!-- 指定数据库表 --> 46 <!-- 配置表名 domainObjectName="SysEmpBean" 设置实体类的名字 默认 表名 去掉下划线 采用驼峰命名法 --> 47 <table schema="" tableName="tb_user"></table> 48 <table schema="" tableName="tb_area"></table> 49 50 </context> 51 </generatorConfiguration>

二、以Java方式运行

1 import java.io.File; 2 import java.io.IOException; 3 import java.sql.SQLException; 4 import java.util.ArrayList; 5 import java.util.List; 6 7 import org.mybatis.generator.api.MyBatisGenerator; 8 import org.mybatis.generator.config.Configuration; 9 import org.mybatis.generator.config.xml.ConfigurationParser; 10 import org.mybatis.generator.exception.InvalidConfigurationException; 11 import org.mybatis.generator.exception.XMLParserException; 12 import org.mybatis.generator.internal.DefaultShellCallback; 13 14 public class MBGTest { 15 public static void main(String args[]) 16 throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException { 17 List<String> warnings = new ArrayList<String>(); 18 boolean overwrite = true; 19 File configFile = new File("generatorConfig.xml"); 20 ConfigurationParser cp = new ConfigurationParser(warnings); 21 Configuration config = cp.parseConfiguration(configFile); 22 DefaultShellCallback callback = new DefaultShellCallback(overwrite); 23 MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings); 24 myBatisGenerator.generate(null); 25 } 26 27 }
以Java Application方式执行即可
三、以Maven方式
mybatis generator在eclipse上的配置主要有在以下几个文件上需要进行修改内容:pom.xml,同样的需要配置文件generatorConfig.xml的创建与编写。
pom.xml需要添加的配置

1 <build> 2 <finalName>taotao</finalName> 3 <pluginManagement> 4 <plugins> 5 <plugin> 6 <groupId>org.mybatis.generator</groupId> 7 <artifactId>mybatis-generator-maven-plugin</artifactId> 8 <version>1.3.2</version> 9 <configuration> 10 <configurationFile>src/main/resources/generator.xml</configurationFile> 11 <verbose>true</verbose> 12 <overwrite>true</overwrite> 13 </configuration> 14 <executions> 15 <execution> 16 <id>Generate MyBatis Artifacts</id> 17 <goals> 18 <goal>generate</goal> 19 </goals> 20 </execution> 21 </executions> 22 <dependencies> 23 <dependency> 24 <groupId>org.mybatis.generator</groupId> 25 <artifactId>mybatis-generator-core</artifactId> 26 <version>1.3.2</version> 27 </dependency> 28 </dependencies> 29 </plugin> 30 <plugin> 31 <groupId>org.apache.maven.plugins</groupId> 32 <artifactId>maven-surefire-plugin</artifactId> 33 <version>2.19.1</version> 34 <configuration> 35 <skipTests>true</skipTests> 36 </configuration> 37 </plugin> 38 39 <plugin> 40 <groupId>org.apache.maven.plugins</groupId> 41 <artifactId>maven-resources-plugin</artifactId> 42 <version>3.0.1</version> 43 <configuration> 44 <encoding>UTF-8</encoding> 45 </configuration> 46 </plugin> 47 </plugins> 48 </pluginManagement> 49 </build>
添加各种依赖,例如数据库依赖

1 <dependency> 2 <groupId>mysql</groupId> 3 <artifactId>mysql-connector-java</artifactId> 4 <version>5.1.35</version> 5 <scope>runtime</scope> 6 </dependency>
在maven面板中可以看到该插件:
同样的需要配置文件generatorConfig.xml的创建与编写。
(这里就略)
运用maven指令生成逆向工程
项目右键->run as->maven build...,Goals:中输入mybatis-generator:generate(这一步可以添加Maven)
最后在说下我在使用命令时遇到以下几个问题的解决方案
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique:
依赖必须是唯一的 原因是我在pom文件中加入了两个相同的依赖 删掉一个就行了
Non-resolvable parent POM for com.siyuan:siyuan-web:0.0.1-SNAPSHOT: Could not find artifa
原来是父工程没有注册,右键parent 项目 -run as - maven install 即可解决
四、以命令行模式
在做好相关的配置(添加完相关依赖或是jar,编写好文件)
1、打开命令提示符,进入lib目录下(也就是进入generatorConfig.xml所在文件夹,并且修改配置好)
2、输入命令:java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite
java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml -overwrite
3、出现Mybatis Generator finished successfully 代码生成完成
然后只需把文件复制到项目中,好久就是我们不用为了这些生成的文件来新建一个项目。