一 引入相关依赖
com.alibaba
druid
1.1.0
mysql
mysql-connector-java
5.1.41
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.1
tk.mybatis
mapper-spring-boot-starter
1.2.4
com.github.pagehelper
pagehelper-spring-boot-starter
1.2.3
com.alibaba
druid-spring-boot-starter
1.1.9
org.mybatis.generator
mybatis-generator-core
1.3.2
compile
true
二 创建相关数据表
-- ----------------------------
-- Table structure for sys_user
-- ----------------------------
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`id` varchar(20) NOT NULL,
`username` varchar(60) NOT NULL COMMENT '用户名,登录名',
`password` varchar(64) NOT NULL COMMENT '密码',
`nickname` varchar(60) NOT NULL COMMENT '昵称',
`age` int(3) DEFAULT NULL COMMENT '年龄',
`sex` int(1) DEFAULT NULL COMMENT '性别\r\n0:女\r\n1:男\r\n2:保密 ',
`job` int(10) DEFAULT NULL COMMENT '职业类型:\r\n1:Java开发\r\n2:前端开发\r\n3:大数据开发\r\n4:ios开发\r\n5:Android开发\r\n6:Linux系统工程师\r\n7:PHP开发\r\n8:.net开发\r\n9:C/C++\r\n10:学生\r\n11:其它',
`face_image` varchar(255) DEFAULT NULL COMMENT '头像地址',
`province` varchar(12) DEFAULT NULL COMMENT '省',
`city` varchar(12) DEFAULT NULL COMMENT '市',
`district` varchar(12) DEFAULT NULL COMMENT '区',
`address` varchar(128) DEFAULT NULL COMMENT '详细地址',
`auth_salt` varchar(16) DEFAULT NULL COMMENT '用于权限的“盐”',
`last_login_ip` varchar(20) DEFAULT NULL COMMENT '最后一次登录IP',
`last_login_time` datetime DEFAULT NULL COMMENT '最后一次登录时间',
`is_delete` int(1) NOT NULL,
`regist_time` datetime NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统后台用户';
三 配置文件
############################################################
#
# 配置数据源相关 使用阿里巴巴的druid数据源
#
############################################################
spring.datasource.url=jdbc:mysql://localhost:3306/cakin
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.druid.initial-size=1
spring.datasource.druid.min-idle=1
spring.datasource.druid.max-active=20
spring.datasource.druid.test-on-borrow=true
spring.datasource.druid.stat-view-servlet.allow=true
############################################################
#
# mybatis 配置
#
############################################################
# mybatis 配置
mybatis.type-aliases-package=com.imooc.pojo
mybatis.mapper-locations=classpath:mapper/*.xml
# 通用Mapper 配置
mapper.mappers=com.imooc.utils.MyMapper
mapper.not-empty=false
mapper.identity=MYSQL
# 分页插件配置
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
四 逆向工程配置文件generatorConfig.xml
五 逆向工程启动类
package com.imooc.utils;
import java.io.File;
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;
public class GeneratorDisplay {
public void generator() throws Exception{
List warnings = new ArrayList();
boolean overwrite = true;
//指定 逆向工程配置文件
File configFile = new File("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);
}
public static void main(String[] args) throws Exception {
try {
GeneratorDisplay generatorSqlmap = new GeneratorDisplay();
generatorSqlmap.generator();
} catch (Exception e) {
e.printStackTrace();
}
}
}
六 运行逆向工程启动类
1 生成pojo
package com.imooc.pojo;
import java.util.Date;
import javax.persistence.*;
@Table(name = "sys_user")
public class SysUser {
@Id
private String id;
/**
* 用户名,登录名
*/
private String username;
/**
* 密码
*/
private String password;
/**
* 昵称
*/
private String nickname;
/**
* 年龄
*/
private Integer age;
/**
* 性别
0:女
1:男
2:保密
*/
private Integer sex;
/**
* 职业类型:
1:Java开发
2:前端开发
3:大数据开发
4:ios开发
5:Android开发
6:Linux系统工程师
7:PHP开发
8:.net开发
9:C/C++
10:学生
11:其它
*/
private Integer job;
/**
* 头像地址
*/
@Column(name = "face_image")
private String faceImage;
/**
* 省
*/
private String province;
/**
* 市
*/
private String city;
/**
* 区
*/
private String district;
/**
* 详细地址
*/
private String address;
/**
* 用于权限的“盐”
*/
@Column(name = "auth_salt")
private String authSalt;
/**
* 最后一次登录IP
*/
@Column(name = "last_login_ip")
private String lastLoginIp;
/**
* 最后一次登录时间
*/
@Column(name = "last_login_time")
private Date lastLoginTime;
@Column(name = "is_delete")
private Integer isDelete;
@Column(name = "regist_time")
private Date registTime;
/**
* @return id
*/
public String getId() {
return id;
}
/**
* @param id
*/
public void setId(String id) {
this.id = id;
}
/**
* 获取用户名,登录名
*
* @return username - 用户名,登录名
*/
public String getUsername() {
return username;
}
/**
* 设置用户名,登录名
*
* @param username 用户名,登录名
*/
public void setUsername(String username) {
this.username = username;
}
/**
* 获取密码
*
* @return password - 密码
*/
public String getPassword() {
return password;
}
/**
* 设置密码
*
* @param password 密码
*/
public void setPassword(String password) {
this.password = password;
}
/**
* 获取昵称
*
* @return nickname - 昵称
*/
public String getNickname() {
return nickname;
}
/**
* 设置昵称
*
* @param nickname 昵称
*/
public void setNickname(String nickname) {
this.nickname = nickname;
}
/**
* 获取年龄
*
* @return age - 年龄
*/
public Integer getAge() {
return age;
}
/**
* 设置年龄
*
* @param age 年龄
*/
public void setAge(Integer age) {
this.age = age;
}
/**
* 获取性别
0:女
1:男
2:保密
*
* @return sex - 性别
0:女
1:男
2:保密
*/
public Integer getSex() {
return sex;
}
/**
* 设置性别
0:女
1:男
2:保密
*
* @param sex 性别
0:女
1:男
2:保密
*/
public void setSex(Integer sex) {
this.sex = sex;
}
/**
* 获取职业类型:
1:Java开发
2:前端开发
3:大数据开发
4:ios开发
5:Android开发
6:Linux系统工程师
7:PHP开发
8:.net开发
9:C/C++
10:学生
11:其它
*
* @return job - 职业类型:
1:Java开发
2:前端开发
3:大数据开发
4:ios开发
5:Android开发
6:Linux系统工程师
7:PHP开发
8:.net开发
9:C/C++
10:学生
11:其它
*/
public Integer getJob() {
return job;
}
/**
* 设置职业类型:
1:Java开发
2:前端开发
3:大数据开发
4:ios开发
5:Android开发
6:Linux系统工程师
7:PHP开发
8:.net开发
9:C/C++
10:学生
11:其它
*
* @param job 职业类型:
1:Java开发
2:前端开发
3:大数据开发
4:ios开发
5:Android开发
6:Linux系统工程师
7:PHP开发
8:.net开发
9:C/C++
10:学生
11:其它
*/
public void setJob(Integer job) {
this.job = job;
}
/**
* 获取头像地址
*
* @return face_image - 头像地址
*/
public String getFaceImage() {
return faceImage;
}
/**
* 设置头像地址
*
* @param faceImage 头像地址
*/
public void setFaceImage(String faceImage) {
this.faceImage = faceImage;
}
/**
* 获取省
*
* @return province - 省
*/
public String getProvince() {
return province;
}
/**
* 设置省
*
* @param province 省
*/
public void setProvince(String province) {
this.province = province;
}
/**
* 获取市
*
* @return city - 市
*/
public String getCity() {
return city;
}
/**
* 设置市
*
* @param city 市
*/
public void setCity(String city) {
this.city = city;
}
/**
* 获取区
*
* @return district - 区
*/
public String getDistrict() {
return district;
}
/**
* 设置区
*
* @param district 区
*/
public void setDistrict(String district) {
this.district = district;
}
/**
* 获取详细地址
*
* @return address - 详细地址
*/
public String getAddress() {
return address;
}
/**
* 设置详细地址
*
* @param address 详细地址
*/
public void setAddress(String address) {
this.address = address;
}
/**
* 获取用于权限的“盐”
*
* @return auth_salt - 用于权限的“盐”
*/
public String getAuthSalt() {
return authSalt;
}
/**
* 设置用于权限的“盐”
*
* @param authSalt 用于权限的“盐”
*/
public void setAuthSalt(String authSalt) {
this.authSalt = authSalt;
}
/**
* 获取最后一次登录IP
*
* @return last_login_ip - 最后一次登录IP
*/
public String getLastLoginIp() {
return lastLoginIp;
}
/**
* 设置最后一次登录IP
*
* @param lastLoginIp 最后一次登录IP
*/
public void setLastLoginIp(String lastLoginIp) {
this.lastLoginIp = lastLoginIp;
}
/**
* 获取最后一次登录时间
*
* @return last_login_time - 最后一次登录时间
*/
public Date getLastLoginTime() {
return lastLoginTime;
}
/**
* 设置最后一次登录时间
*
* @param lastLoginTime 最后一次登录时间
*/
public void setLastLoginTime(Date lastLoginTime) {
this.lastLoginTime = lastLoginTime;
}
/**
* @return is_delete
*/
public Integer getIsDelete() {
return isDelete;
}
/**
* @param isDelete
*/
public void setIsDelete(Integer isDelete) {
this.isDelete = isDelete;
}
/**
* @return regist_time
*/
public Date getRegistTime() {
return registTime;
}
/**
* @param registTime
*/
public void setRegistTime(Date registTime) {
this.registTime = registTime;
}
}
2 生成映射的配置文件
3 生成映射类
package com.imooc.mapper;
import com.imooc.pojo.SysUser;
import com.imooc.utils.MyMapper;
public interface SysUserMapper extends MyMapper {
}
六 参考
MyBatis的开源框架
https://github.com/abel533/MyBatis-Spring-Boot