A.CTable+springboot+mybatis-plus⾃动更新数据表结构增加或者。。。
A.CTable+springboot+mybatis-plus⾃动更新数据表结构增加或者删除表字段
⾸先⾮常感谢孙琛斌提供的A.CTable框架
其实对于数据表结构的更改可以⽤hibernate enhance ⼀种⽅式使⽤Ebean框架对数据表结构的更新,⽽对于mybatis-plus使⽤A.CTable 同样可以实现对数据库表结构的更新话不多说直接上代码:
⾸先引⼊坐标:
<!--mybatis-plus⾃动建表功能-->
<dependency>
<groupId>com.batis.actable</groupId>
<artifactId>mybatis-enhance-actable</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!--springboot启动mybates-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.2</version>
</dependency>
<!--mybaties-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.1.2</version>
</dependency>
<!--对mybaties-plus的加强-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.1.2</version>
</dependency>
<!--lomok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
</dependency>
在l进⾏配置:
server:
port:8011
mybatis:
table:
auto: update
#create    系统启动后,会将所有的表删除掉,然后根据model中配置的结构重新建表,该操作会破坏原有数据。
#update    系统会⾃动判断哪些表是新建的,哪些字段要修改类型等,哪些字段要删除,哪些字段要新增,该操作不会破坏原有数据。
springboot结构
#none    系统不做任何处理。
#add      新增表/新增字段/新增索引/新增唯⼀约束的功能,不做做修改和删除 (只在版本1.0.9.RELEASE及以上⽀持)。
model:
pack: com.ity #扫描⽤于创建表的对象的包名,多个包⽤“,”隔开
database:
type: mysql #数据库类型⽬前只⽀持mysql
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/leadnews_user?useSSL=false&&characterEncoding=UTF-8
driver-class-name: sql.jdbc.Driver
username: root
password: root
mybatis-plus:
mapper-locations: classpath*:xxxxxx/*.xml,classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xml
#mapper-locations内容逗号前⾯是⾃⼰项⽬的xml⽂件所放位置,⽐如⾃⼰的xml⽂件在resources:l那么逗号前⾯的路径更改为classpa th:mapper/*.xml逗号后⾯的直接复制
在启动类上添加注解:
@SpringBootApplication
@MapperScan({"com.batis.actable.dao.*","com.person.provider.mapper"})//逗号前⾯直接复制不要更改,注意这⾥可以指定多个包,逗号间隔,逗号后⾯写⾃⼰的dao包路径
@ComponentScan({"com.batis.actable.manager.*","com.person"})//逗号前⾯直接复制不要更改,逗号后⾯写⾃⼰的controller层包路径public class ProviderApp {
public static void main(String[] args){
SpringApplication.run(ProviderApp.class,args);
}
}
在yml配置的扫描包 com.ity下新建实体类 基础类SuperEntity:
package com.ity;
import batisplus.annotation.IdType;
import batisplus.annotation.TableId;
import com.batis.actable.annotation.Column;
import com.batis.actable.annotation.IsAutoIncrement;
import com.batis.actable.annotation.IsKey;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Getter//lombok注解,不⽤管
@Setter//lombok注解,不⽤管
public class SuperEntity {
/**
* 主键
*/
@TableId(type = IdType.AUTO)//mybatis-plus主键注解
@IsKey//actable主键注解
@IsAutoIncrement//⾃增
@Column//对应数据库字段,不配置name会直接采⽤属性名作为字段名
private Long id;
/**
* 创建时间
*/
@Column(name ="create_time",comment ="创建时间")// name指定数据库字段名,comment为备注
private Date createTime;
/**
* 最后修改时间
*/
@Column(name ="update_time",comment ="最后修改时间")
private Date updateTime;
}
在yml配置的扫描包 com.ity下新建在数据库加的表结构User类:
package com.ity;
import com.batis.actable.annotation.Column;
import com.batis.actable.annotation.Table;
import lombok.Data;
@Data//lombok注解,不⽤管
@Table(name ="t_user")//对应数据库表名,如果更改表名需要同步更改数据库表名,不然会重新创建表。public class User extends SuperEntity {
@Column
private String username;
@Column
private String password;
}
⼀切准备就绪启动项⽬开始运⾏:
当看到这样的提⽰时表⽰数据库表已经更新完毕,接下来打开数据库看下是否新增了⼀个表结构:
果然很完美,java已经⾃动帮你新建了⼀个数据库表!有了这个⼯具,以后建表,建库,那就太⽅便了,真⾹

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。