MyBatis逆向工程
之所以强调单表两个字,是因为 MyBatis 逆向工程生成的 Mapper 中的操作都是针对单表的。在大型项目中,很少有复杂的多表关联查询,所以该工具作用还是很大的。
1. 下载jar包
jar包下载链接:https://githu网站站点" rel="nofollow" /><dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.0</version>
</dependency>
2. 创建数据表
创建 user、student、studentCard 和 website 数据表,SQL 语句如下。DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`sex` tinyint(4) DEFAULT NULL,
`cardId` int(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `cardId` (`cardId`),
CONSTRAINT `student_ibfk_1` FOREIGN KEY (`cardId`) REFERENCES `studentcard` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `studentcard`;
CREATE TABLE `studentcard` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`studentId` int(20) DEFAULT NULL,
`startDate` date DEFAULT NULL,
`endDate` date DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `studentId` (`studentId`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`pwd` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
DROP TABLE IF EXISTS `website`;
CREATE TABLE `website` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
`url` varchar(30) COLLATE utf8_unicode_ci DEFAULT '',
`age` tinyint(3) unsigned NOT NULL,
`country` char(3) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`createtime` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
3. 创建项目
创建 NXProject 项目,导入所需 jar 包。新建资源文件夹 config,在 config 文件夹下创建 genertorConfig.xml 文件,用于配置及指定数据库及表等。
genertorConfig.xml 配置文件代码如下。注意:可以在已有的项目中进行逆向生成,也可以创建一个新项目。建议创建新项目,避免出现意外影响已有的项目。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis网站站点" rel="nofollow" />
package net.biancheng;
import java.io.File;
import java.util.*;
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;
public class GeneratorSqlmap {
public void generator() throws Exception {
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
// 指定配置文件
File configFile = new File("./config/generatorConfig.xml");
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
}
// 执行main方法以生成代码
public static void main(String[] args) {
try {
GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
项目结构如下图所示。

执行 GeneratorSqlmap 后刷新项目,项目结构如下。

可以看到在 pojo 包中,有一部分是名字为 xExample 的类。类中包含以下 3 个成员变量,如下。
protected String orderByClause;
protected boolean distinct;
protected List<Criteria> oredCriteria;
以上变量说明如下:
distinct 字段用于指定 DISTINCT 查询。
orderByClause 字段用于指定 ORDER BY 条件,这个条件没有构造方法,直接通过传递字符串值指定。
oredCriteria 字段用于自定义查询条件。
更多信息可参考《MyBatis逆向工程使用手册》。
- 随机文章
- 塞班 马尔代夫 普吉(塞班岛、马尔代夫、普吉三大旅游圣地,哪个更适合你?)
- 马尔代夫来回机票(马尔代夫来回机票预订,最佳价格优惠 - 50字)
- 回味马尔代夫之旅(迷失于马尔代夫:一个令人难忘的旅程)
- 孝昌马尔代夫汉服(孝昌乘风破浪,马尔代夫唯美汉服旅拍)
- 国际轻奢马尔代夫(马尔代夫:全球最奢华岛国的心动体验)
- 印度马尔代夫大桥(印度建成连接马尔代夫的南亚最长大桥)
- 东方马尔代夫项目(东方集团在马尔代夫启动高端旅游项目)
- 中国 马尔代夫 17 0(中国游客在马尔代夫享受暑期假期17-0获得大胜利)
- 枝江有马尔代夫吗(枝江是否有类似马尔代夫的旅游胜地?)
- 坎昆 马尔代夫(坎昆和马尔代夫重磅旅游联手!)
- 新航直飞马尔代夫(直飞马尔代夫,新航带您畅游度假胜地)
- 国足马尔代夫时间(中国足球队将在马尔代夫时间进行比赛)
- 江滨公园马尔代夫(江滨公园的马尔代夫式海景:美不胜收)
- 福州马尔代夫渔村(福州打造出镜马尔代夫,体验异国风情)
- 衢州马尔代夫夜景(衢州打造马尔代夫夜景走红,游客涌入)
- 网红马尔代夫球场(马尔代夫球场现已成为网红打卡胜地!)
- 马尔代夫高清美图(马尔代夫绝美风光,惊艳高清美图!)
- 绵阳马尔代夫大雨(绵阳遭遇狂暴暴雨,街头街尾成河流!)
- 安徽 马尔代夫(安徽旅行社推马尔代夫五晚六日自由行!)
- 时尚阿姨马尔代夫(时尚阿姨探访马尔代夫:海底世界游记)
- 郑州景区马尔代夫(郑州景区打造风情浪漫的马尔代夫之旅)
- 深圳马尔代夫海岛(深圳巨星马尔代夫私人岛:度假新体验)
- 重庆马尔代夫退水(重庆游客涉嫌在马尔代夫“退水”被捕)
- 印度马尔代夫移民(印度人涌向马尔代夫:寻求更好的生活)
- 马尔代夫中国战舰(马尔代夫海域巡航的中国战舰受到欢迎)
- 孟加拉踢马尔代夫(孟加拉击败马尔代夫,赢得比赛冠军。)
- 东航 马尔代夫(东航新增马尔代夫航班,再添旅游热点!)
- 马尔代夫休闲女裤(马尔代夫休闲女裤:时髦、轻盈、自在)
- 郑和马尔代夫视频(郑和船队神秘亮相、马尔代夫视频曝光)
- 登封马尔代夫海边(登封市民在马尔代夫享受美好海滩时光)
