需求
进入正题
第一步安装 A.CTable
<dependency>
<groupId>com.gitee.sunchenbin.mybatis.actable</groupId>
<artifactId>mybatis-enhance-actable</artifactId>
<version>1.5.0.RELEASE</version>
</dependency>
第二步在application.yml文件中添加配置
actable:
table:
auto: update
model:
pack: com.ruoyi.entity
database:
type: mysql
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456
第三步配置MyBtis
# MyBatis配置
mybatis:
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml,classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xml
第四步在启动类上添加注解
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
@MapperScan({"com.gitee.sunchenbin.mybatis.actable.dao.*"} )
@ComponentScan("com.gitee.sunchenbin.mybatis.actable.manager.*")
public class RuoYiApplication
{
public static void main(String[] args)
{
SpringApplication.run(RuoYiApplication.class, args);
}
}
- 第四步创建需要自动生成的实体类记住包路径要和
yml
配置文件中的 pack属性一致
- Test实体类
@Table(name = "role",isSimple = true)
public class Test extends MyBase {
@IsKey
@IsAutoIncrement
private Integer id;
private String name;
private String type;
public Integer getId(){
return id;
}
public void setId(Integer id){
this.id = id;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getType() {
return this.type;
}
public void setType(String type) {
this.type = type;
}
}
A.CTable配置实体类
基础配置
@Table(comment = "actable简单配置")
public class ACTableSimple {
@IsKey
@IsAutoIncrement
private Long id;
@Column
@Index
@IsNotNull
private String name;
@Column
private Date createTime;
@Column(defaultValue = "false")
private Boolean isTrue;
@Column
private Integer age;
@Column
private BigDecimal price;
@Column
@Unique
private String identitycard;
}
进阶配置
@Table(value = "t_actable_advance", comment = "actable进阶配置")
@TableCharset(MySqlCharsetConstant.UTF8)
@TableEngine(MySqlEngineConstant.InnoDB)
public class ACTableAdvance {
@IsKey
@IsAutoIncrement
private Long id;
@Column
@Index(value = "idx_name_shop", columns = {"name","shop"})
@IsNotNull
private String name;
@Column(name = "create_time", type = MySqlTypeConstant.TIMESTAMP, comment = "创建时间")
private Date createTime;
@Column
@DefaultValue("true")
private Boolean isTrue;
@Column
@ColumnComment("年龄")
@ColumnType(value = MySqlTypeConstant.INT, length = 3)
private Integer age;
@Column(length = 10, decimalLength = 4)
private BigDecimal price;
@Column
@Unique("uni_identitycard")
private String identitycard;
@Column
@Unique(columns = {"name","shop"})
private String shop;
}
注解详解