用acttable实现

1.引入pom依赖

 <!--根据实体类生成表-->
<mybatis-enhance-actable.version>1.4.9.RELEASE</mybatis-enhance-actable.version>
.............

            <dependency>
                <groupId>com.gitee.sunchenbin.mybatis.actable</groupId>
                <artifactId>mybatis-enhance-actable</artifactId>
                <version>${mybatis-enhance-actable.version}</version>
            </dependency>

2.修改配置文件application.properties或者.yml
添加如下配置

# 可以设置为create(纯创建)、add(添加新的不删除内容)、update(更新内容,推荐用)、none(啥都不干)
actable.table.auto = update
# 用于创建数据表的待扫描目录,该目录下的类如果有@Table注解,就会进行扫描
#你的实体类放的包
actable.model.pack = com.forum.entities
# 创建类型,目前仅支持mysql
actable.database.type = mysql
# mybatis-plus自有的配置信息,key也可能是:mybatis.mapperLocations
#看你用的是mybatis-plus还是mybatis,为这里用的是mybatis-plus
mybatis-plus.mapper-locations = classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xml

3.修改启动类注解

@SpringBootApplication
//mapper接口路径
@MapperScan(basePackages = {"com.gitee.sunchenbin.mybatis.actable.dao.*","com.forum.mapper"})
//扫包路径
@ComponentScan(basePackages = {"com.gitee.sunchenbin.mybatis.actable.manager.*","com.forum.*"})
@Slf4j
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

4.实体类 IBasePojo不用理会

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.forum.entities.common.IBasePojo;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 用户表
 * @作者 刘万
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("user")
public class User extends IBasePojo {


    private static final long serialVersionUID = -8162322254049592409L;

    @TableId(value = "id",type = IdType.AUTO)
    @Column(comment = "主键id",isAutoIncrement = true)
    private Integer id;

    @TableField("userAccount")
    @Column(comment = "用户账号")
    private String userAccount = "";

    @TableField("userPassword")
    @Column(comment = "用户密码")
    private String userPassword = "";

    //不存数据库
    @TableField(exist = false)
    private String fansNum;

}


5.然后就小功告成了,启动你的项目试试吧
acttable官网地址:acttable

更多推荐

Mybatis/Mybatis-plus启动自动建表