也可以使用Maven引入依赖,在pom.xml中添加如下依赖:<!-- MyBatis代码生成器 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.3</version>
</dependency>
2)编写Generator类代码:
在项目中添加Mybatis.generator包,并创建Generator类,如下:
在Generator中添加如下代码:
package Mybatis.generator;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
//读取MBG配置并生成代码
public class Generator {
public static void main(String[] args) throws Exception {
//MBG执行过程中的警告信息
List<String> warnings=new ArrayList<String>();
//生成的代码重复时覆盖原代码
boolean overwrite =true;
//读取MBG配置文件
InputStream is=Generator.class.getResourceAsStream("/generator/generatorConfig.xml");
ConfigurationParser cp=new ConfigurationParser(warnings);
Configuration config =cp.parseConfiguration(is);
is.close();
DefaultShellCallback callback=new DefaultShellCallback(overwrite);
//创建MBG
MyBatisGenerator myBatisGenerator =new MyBatisGenerator(config, callback, warnings);
//执行代码生成器
myBatisGenerator.generate(null);
//输出警告信息
for(String warning : warnings){
System.out.println(warning);
运行测试:
没有什么过多的消息:
再次运行会提示代码覆盖:
查看生成效果:
3)java编码方式的优缺点:
优点:
使用方便,generatorConfig.xml配置的一些特殊类,只要再当前项目或者当前项目的classPath中就可以直接使用。
其他方式则需要额外的配置才能使用。
缺点:
和当前项目是绑定在一起的,如果有多个子模块则需要配置多个generatorConfig.xml和Generator.java,不太方便。
综合评价:
虽然有缺陷,但是这种方式出现的问题最少,推荐使用。
https://github.com/mybatis/generator/releases
需要将jar包和generatorConfig.xml文件放到一起
并且将jdbc连接驱动的jar包也放到一起(mysql-connector-java-5.1.35.jar)
修改配置:在配置文件开头添加classPathEntry,代码如下:<generatorConfiguration>
<!-- 数据库驱动包位置 -->
<classPathEntry location="D:/Test/mybatistest/mysql-connector-java-5.1.35.jar" />
<!-- 配置对象环境 -->
<context id="MySqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<!--后面相同-->
</generatorConfiguration>
并且在generatorConfig.xml同级目录添加src文件夹,并在src目录下添加java与resources文件夹,添加完后的大致结果是这样的:
2)使用cmd自动生成代码:
在当前目录下【shift】+右键,在此处打开命令窗口。
输入以下命令就可以生成代码:java -jar mybatis-generator-core-1.3.3.jar -configfile generatorConfig.xml -overwrite
运行测试:
查看运行后的目录结构:
但是这样生成的代码是GBK编码的,一般需要修改为UTF-8编码。
自动生成UTF-8编码代码的命令:java -Dfile.encoding=UTF-8 -jar mybatis-generator-core-1.3.3.jar -configfile generatorConfig.xml -overwrite
只需要执行这一条就可以了,上一条不用执行。
3)参数:
MBG的参数:
-configfile filename
:指定配置文件的名称
-overwriote(可选)
:指定了该参数后,如果生成的Java文件存在同名文件则覆盖。未指定是不会覆盖,会为生成的文件指定一个唯一的名字。
-verbose(可选)
:指定该参数,MBG会使用java日志而不会使用Log4J。
-contextids context1,context2,...(可选)
:指定该参数,后面的context会被执行,context1,context2需要与配置文件context标签的id一致。只有这样指定的context才会被激活。没有参数,所有的context都激活。
-tables table1,table2,...(可选)
:指定该参数,逗号隔开的表会被运行,需与数据库的表名一致,不指定该参数则所有的表都被执行。
- 使用到的java参数:
-jar xxx.jar
:执行jar包
--Dfile.encoding=xxx
:修改编码
-cp
:需要使用其他jar包时可以将其他jar包添加到classpath下,使用该参数时不能使用-jar
4)命令行方式的优缺点:
- 优点(特点):
完全独立与项目,针对不同的项目配置不同的generatorConfig.xml文件。
命令虽然写起来麻烦,但是可以创建批处理文件,.bat/.sh,只要点击就可以运行了。
- 缺点:
如果想要和自己实现的gererator类合起来使用的话会比较麻烦。
- https://github.com/mybatis/generator/releases
选择eclipse并下载:
- 打开【help】–>【Install New Software】–>【add】,添加刚刚下载的文件,并指定名字,然后选中所有的MyBatis Generator(不要选带尾巴那个,否则会出错),然后一路next,finish,会下载一些东西,然后让你重启。
- 成功安装并重启后在xml文件点击右键会有这个功能:
3)使用Eclipese插件自动生成代码:
- 先将上面自动生成的代码全都删除:
修改generatorConfig.xml:
JDBC驱动需要classPathEntry进行配置,还需要在context下添加一个javaFileEncoding的property标签配置为UTF-8:
<!-- 数据库驱动包位置 -->
<classPathEntry location="D:/Test/mybatistest/mysql-connector-java-5.1.35.jar" />
<!-- 配置对象环境 -->
<context id="MySqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<!-- 配置起始与结束标识符 -->
<property name="beginningDemiliter" value="`"/>
<property name="endingDemiliter" value="`"/>
<property name="javaFileEncoding" value="UTF-8"/>
然后修改路径添加项目名:
将src\main\java
,改为simple2\src\main\java
,以此类推。
generatorConfig.xml,右键,选择Generator MyBatis/Ibatis Artifacts,运行,结果如下:
- http://www.mybatis.org/generator/plugins.html
3)commentGenenrator标签:
- 用来配置如何生成注释信息,最多可以配置一个,也可以不配置。
- 该标签有一个可选属性:type,可以指定用户的实现类,该类需要实现org.mybatis.generator.api.CommentGenerator接口,且必须有一个默认的构造方法。
type属性,默认值为DEFAULT,默认实现org.mybatis.generator.internal.DefaultCommentGenerator。