MyBatis_Generator (MBG)逆向工程的四种方式
mybatis是目前很流行的持久层框架,其逆向工程更是大大缩减了我们的开发时间。有兴趣的可以看文档。
文档地址:
废话不多讲,下面我们总结一下他的几种配置使用的方式(以eclipse为例):
一、eclipse插件安装的方式
这里的安装分为在线安装和手动安装。我们先来说手安装。
1、手动安装
下载地址:
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 代码生成完成
然后只需把文件复制到项目中,好久就是我们不用为了这些生成的文件来新建一个项目。
下一篇: flask项目中使用富文本编辑器