SpringBoot整合MyBatis——使用generatorConfig生成mapper以及pojo

一 引入相关依赖


    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

你可能感兴趣的:(Spring,Boot)