springboot整合ACTable生成数据库表方式

 更新时间:2025年02月13日 09:03:47   作者:worilb  
ACTable是一个增强Mybatis的功能框架,支持SpringBoot和SpringMvc项目,通过配置model注解即可创建、修改表结构,并实现了共通的CRUD功能

springboot整合ACTable生成数据库表

1. 痛点

我们在使用Mybatis或Mybatis-Plus时,可以用其自带的generator插件根据已经存在的数据库表生成代码(包括实体类),但是却不能通过实体类来创建、更改表。

如果你使用的是JPA,那不必烦恼,JPA有此功能。使用Mybatis系列的可以考虑使用ACTable。

2. ACTable介绍

官网复制的介绍:A.C.Table是对Mybatis做的增强功能,支持SpringBoot以及传统的SpringMvc项目结构,简单配置即可,该框架是为了能够使习惯了hibernate框架的开发者能够快速的入手Mybatis, “A.C.Table” 本意是自动建表的意思,A.C.Table是一个基于Spring和Mybatis的Maven项目,增强了Mybatis的功能,过配置model注解的方式来创建表,修改表结构,并且实现了共通的CUDR功能提升开发效率,同时能够兼容tk.mybatis和mybatis-plus,如需使用依赖相关的pom依赖即可,目前仅支持Mysql,后续会扩展针对其他数据库的支持。

3. 使用方式

先引入依赖(已经有了mysql支持和Mybatis),如果没有mysql和Mybatis请自行引入。

 <!--        生成表依赖-->
        <dependency>
            <groupId>com.gitee.sunchenbin.mybatis.actable</groupId>
            <artifactId>mybatis-enhance-actable</artifactId>
            <version>1.5.0.RELEASE</version>
        </dependency>

配置文件中进行配置

#配置模板
# actable的配置信息
actable.table.auto=update
actable.model.pack=com.yours.model
actable.database.type=mysql
actable.index.prefix=自己定义的索引前缀#该配置项不设置默认使用actable_idx_
actable.unique.prefix=自己定义的唯一约束前缀#该配置项不设置默认使用actable_uni_
# mybatis自有的配置信息,key也可能是:mybatis.mapperLocations
mybatis.mapper-locations=classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xml

我的配置:

#自动建表模式,选择更新模式
mybatis.table.auto=update
#要扫描的实体类路径
mybatis.model.pack=com.study.vue.entity
#数据库类型,目前只支持mysql
mybatis.database.type=mysql
#要用到的xml路径,固定的
mybatis.mapper-locations=classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xml

配置信息解释:

springboot2.0+启动类需要做如下配置(必备)

  • @ComponentScan配置,路径"com.gitee.sunchenbin.mybatis.actable.manager.*"
  • @MapperScan配置,路径"com.gitee.sunchenbin.mybatis.actable.dao.*"

@MapperScan({"com.gitee.sunchenbin.mybatis.actable.dao.*"} )
@ComponentScan(basePackages = {"com.gitee.sunchenbin.mybatis.actable.manager.*"})

创建完成后进入数据库查看:

@Table("t_user") //创建表时的表名,不指定名称时默认为类名
public class User {
    //字段注解,不指定名称时默认为字段名,会将驼峰字段用_分割
    @Column(name = "id",type = MySqlTypeConstant.INT,isKey = true,isAutoIncrement = true)
    private Integer id;

    @Column(name = "name",type = MySqlTypeConstant.VARCHAR)
    private String name;

    @Column(name = "phone",type = MySqlTypeConstant.VARCHAR)
    private String phone;

    @Column(name = "create_time",type = MySqlTypeConstant.DATE)
    private Date createTime;

    @Column(name = "del",type = MySqlTypeConstant.BIT,defaultValue = "0")
    private Boolean del;
}
@Table
public class Dept {

    @Column(type = MySqlTypeConstant.INT)
    @IsKey //主键,相当于isKey = true
    @IsAutoIncrement //自增,相当于isAutoIncrement = true
    private Integer id;

    @Column
    private Integer pid;

    @Column
    private String name;

    @Column
    private LocalDateTime createTime;
    @Column
    private Boolean del;

}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java线程死锁代码示例

    java线程死锁代码示例

    这篇文章主要介绍了java线程死锁代码示例,分享了一个简单线程死锁的例子,需要的朋友可以参考下。
    2017-11-11
  • Java groovy如何提升代码运行效率

    Java groovy如何提升代码运行效率

    这篇文章主要介绍了Java groovy如何提升代码运行效率,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Java ConcurrentHashMap锁分段机制使用及代码实例

    Java ConcurrentHashMap锁分段机制使用及代码实例

    ConcurrentHashMap是Java中的一种线程安全的哈希表,通过锁分段机制提高了并发性能,在Java 8中,ConcurrentHashMap引入了CAS操作和更复杂的节点继承结构,进一步优化了并发操作
    2025-01-01
  • Java中的ArrayList容量及扩容方式

    Java中的ArrayList容量及扩容方式

    这篇文章主要介绍了Java中的ArrayList容量及扩容方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java中数组的定义和使用教程(二)

    Java中数组的定义和使用教程(二)

    这篇文章主要给大家介绍了关于Java中数组的定义和使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Java调用Shell命令的方法

    Java调用Shell命令的方法

    这篇文章主要介绍了Java调用Shell命令的方法,实例分析了java调用shell命令的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • SpringBoot部署在Weblogic的操作步骤

    SpringBoot部署在Weblogic的操作步骤

    这篇文章主要介绍了SpringBoot部署在Weblogic的操作步骤,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • SpringBoot登录拦截配置详解(实测可用)

    SpringBoot登录拦截配置详解(实测可用)

    这篇文章主要介绍了SpringBoot登录拦截配置详解(实测可用),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 详解Java实现单例的五种方式

    详解Java实现单例的五种方式

    这篇文章主要介绍了详解Java实现单例的五种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • mybatis 拦截器添加参数的实现

    mybatis 拦截器添加参数的实现

    本文主要介绍了MyBatis拦截器中添加参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12

最新评论