Springboot+Mybatis的逆向工程

Mybatis逆向工程,自动生成 entity类和常用的增删改查方法。

 

  • 1.pom.xml引入类


tk.mybatis
mapper-spring-boot-starter
2.1.5


org.springframework.boot
spring-boot-starter-jdbc





org.mybatis.generator
mybatis-generator-core
1.3.5
provided

 

  • 2.配置文件:\src\main\resources\resources\generatorConfig.xml

Springboot+Mybatis的逆向工程_第1张图片

xml version="1.0" encoding="UTF-8"?>
DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <properties resource="application.properties">properties>

    
    <classPathEntry  location="D:\sqljdbc4.jar"/>
    <context id="DB2Tables"  targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            
            <property name="suppressAllComments" value="true"/>
        commentGenerator>
        
        
        <jdbcConnection driverClass="${spring.datasource.druid.driverClassName}" connectionURL="${spring.datasource.druid.url}" userId="${spring.datasource.druid.username}" password="${spring.datasource.druid.password}">
        jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        javaTypeResolver>
        
        <javaModelGenerator targetPackage="com.generator.model" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        javaModelGenerator>
        
        <sqlMapGenerator targetPackage="com.generator.mapping" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        sqlMapGenerator>
        
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.generator.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        javaClientGenerator>
        
        
        <table tableName="sys_user"  enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">table>

    context>
generatorConfiguration>
源代码

 

  • 3.配置Java类

 \src\main\java\com\nsoft\gkzp\system\sysuser\service\SysUserServiceImpl.java 

File configFile文件参数指定generatorConfig.xml配置文件位置  
package com.nsoft.gkzp.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;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class GeneratorSqlmap {
    public void generator() throws Exception {
        List warnings = new ArrayList();
        boolean overwrite = true;
        //指定 逆向工程配置文件
        File configFile = new File("./src/main/resources/resources/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方法就可以进行逆向工程
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        try {
            GeneratorSqlmap generatorSqlmap = new GeneratorSqlmap();
            generatorSqlmap.generator();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

运行上面的main方法,就会自动生成三个文件(以sys_User表为例)(如下图)

Springboot+Mybatis的逆向工程_第2张图片

create table sys_user(
    id              int                identity(1,1)  primary key not null,    --id主键 自增长
    loginName     nvarchar(50)    NOT NULL ,                                    --登录用户名
    password      nvarchar(50)    NOT NULL ,                                    --登录密码
    email          nvarchar(255)    ,                                        --用户邮箱    (邮箱登录)
    phone         nvarchar(15)  ,                                        --用户手机号(手机号登录)
    createTime    datetime default CONVERT(varchar(100), GETDATE(), 20),    --用户创建时间
    pwdChangeTime datetime default CONVERT(varchar(100), GETDATE(), 20),    --改密码时间(初始值为用户创建时间)
    code          varchar(255) ,                                            --'激活码'
    usertype      int            NOT NULL default 2,                            --用户类型(0系统管理员 1、内网用户 2、普通用户)    
    state          int           NOT NULL default 0 ,                        --用户激活状态:0表示未激活,1表示激活
    nstatusid      int default 1                                                --用户状态 0无效 1有效
);
表sys_user

另:SysUser实体类中,例如loginname字段均为小写的,如果表字段设计为login_name的话,生成的实体类此字段映射为loginName,就会大写。同理表名也是如此。

  • 4.实际应用

生成后,可以将

4.1  接口类SysUserMapper.java、映射文件UserMapper.xml 两个文件删除了,用不到。  实体类SysUser.java复制粘贴到你要放实际放的地方就可以了。

4.2  实际的dao层接口类继承   Mapper     ,继承后,基础的增删改查操作mybatis已经自动生成并封装,不需要写了,这里只写其他业务逻辑方法就可以了。

   注意:1.这里为你生成实体类存放位置,如你在4.1步骤将SysUser.java实体类复制粘贴到其他位置,那么这里就写新位置的路径

              2. 继承的Mapper为 tk.mybatis.mapper.common.Mapper。

Springboot+Mybatis的逆向工程_第3张图片

在service实现类,就可以直接使用mybatis自动生成并封装的基础的增删改成操作,如下图。

Springboot+Mybatis的逆向工程_第4张图片

 
 

 

你可能感兴趣的:(Springboot+Mybatis的逆向工程)