在mybatis数据库开发过程中,一开始是先写dao ,pojo然后通过映射文件来完成数据库的操作;
一个简单的案例是---->>>
看起来就这么多,如果你想看一下本教程,可以直接移步-------
链接
mybatis逆向工程由结果导向配置文件,正常情况下是由我们根据数据库文件编写pojo实体类,而mabatis逆向工程是通过一个mybatis-genertator-core核心包来实现自动生成pojo的一种实现;
下面简单来说一下generrator的配置------>>>
首先是表头---->>>>
表头没有什么好研究的,规定好了,
配置文件下的基本规则内容
配置生成器
具体的配置内容
context 标签的含义是生成一组对象的环境,唯一id必不可少
defaultModelType用于指定生成对象的样式,有三个可选值---->>>>
1,conditional:如果某张表只有一个字段,则不会生成pojo实体
2,flat:所有内容(主键,blob)等全部生成在一个对象中;也是最常用的
3,hierarchical:主键生成一个XXKey对象(key class),Blob等单独生成一个对象,其他简单属性在一个对象中(record class)
如果表中没有blob,则hierarchical 与flat的效果是一样的
targetRuntime:
1,MyBatis3:默认的值,生成基于MyBatis3.x以上版本的内容,包括XXXBySample;
2,MyBatis3Simple:类似MyBatis3,只是不生成XXXBySample;
introspectedColumnImpl:值为类全限定名,用于扩展MBG,即引入一个工具类用于扩展MBG
下面的配置基本是默认的,如果遇到某些情况可以修改一下,比如表字段与java关键字冲突时候;
关于注释的一些配置,当然可以自定义注释,要有类的实现,代码留作日后在讨论;
java数据库连接,在这里,开头generatorConfiguration可以引入一个外部文件,然后修改数据库时会很方便;这里并没有这么做,你知道就行;等案例的时候会采用外部配置的方式完成;
自定义数据库中数据处理类型,当然前提是需要有类型处理器的实现类或者继承类;
生成实体类—pojo 生成的位置以及其他配置
生成xml文件—mapper.xml
生成dao层接口
要操作的表----
当然,上面的配置内容不必全部都配置,挑选自己需要的就好了;
下面是我自己配置的
下面写测试类以生成需要的数据----
package GavinTest;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class test {
public static void main(String[] args) {
List warnings = new ArrayList();
boolean overwrite = true;
String Cfg = "C:\Users\Gavin\IdeaProjects\comgavinreverse\src\main\resources\Generator-Config.xml";
File configFile = new File(Cfg);
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = null;
try {
config = cp.parseConfiguration(configFile);
} catch (IOException e) {
e.printStackTrace();
} catch (XMLParserException e) {
e.printStackTrace();
}
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = null;
try {
myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
} catch (InvalidConfigurationException e) {
e.printStackTrace();
}
try {
myBatisGenerator.generate(null);
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
在生成时出现了一个错误,-----
原来是设置了继承了一个父类,
如果设置了该项,那么父类中有的属性不会在子类中再去生成了;
同时我们还可指定全参构造方法是否生成;
最后打印日志----->>
配置文件可以使得不生成映射文件,但是这种方式会使得代码维护修改sql,就比较…
即通过如下配置---->>>>>
一般是采用用混合的模式----即如下方式—
生成的目录结构
源代码放在这里了------>>>>
就是这里
对了,放一个标准的逆向工程配置文件供参考------->>


![mybatis中由Dao层向mapper层演变的以及逆向工程详解[个人笔记] mybatis中由Dao层向mapper层演变的以及逆向工程详解[个人笔记]](http://www.mshxw.com/aiimages/31/631276.png)
