package cn.iocoder.yudao.module.iot.framework.tdengine.core;
|
|
import cn.hutool.core.util.StrUtil;
|
import lombok.AllArgsConstructor;
|
import lombok.Data;
|
import lombok.NoArgsConstructor;
|
|
import java.util.Locale;
|
|
/**
|
* TDEngine 表字段
|
*/
|
@Data
|
@NoArgsConstructor
|
@AllArgsConstructor
|
public class TDengineTableField {
|
|
/**
|
* 字段名 - TDengine 默认 ts 字段,默认会被 TDengine 创建
|
*/
|
public static final String FIELD_TS = "ts";
|
|
public static final String TYPE_TINYINT = "TINYINT";
|
public static final String TYPE_INT = "INT";
|
public static final String TYPE_FLOAT = "FLOAT";
|
public static final String TYPE_DOUBLE = "DOUBLE";
|
public static final String TYPE_BOOL = "BOOL";
|
public static final String TYPE_NCHAR = "NCHAR";
|
public static final String TYPE_VARCHAR = "VARCHAR";
|
public static final String TYPE_TIMESTAMP = "TIMESTAMP";
|
|
/**
|
* 字段长度 - VARCHAR 默认长度
|
*/
|
public static final int LENGTH_VARCHAR = 1024;
|
|
/**
|
* 注释 - TAG 字段
|
*/
|
public static final String NOTE_TAG = "TAG";
|
|
/**
|
* 字段名
|
*/
|
private String field;
|
|
/**
|
* 字段类型
|
*/
|
private String type;
|
|
/**
|
* 字段长度
|
*/
|
private Integer length;
|
|
/**
|
* 注释
|
*/
|
private String note;
|
|
public TDengineTableField(String field, String type) {
|
this.field = field;
|
this.type = type;
|
}
|
|
/**
|
* 构建字段名:TDengine 默认会将字段名转为小写,需要和建表、写入、查询保持一致。
|
* 例如:PT -> pt,PfT -> pf_t。
|
*/
|
public static String buildFieldName(String field) {
|
if (StrUtil.isBlank(field)) {
|
return field;
|
}
|
return StrUtil.toUnderlineCase(field).toLowerCase(Locale.ROOT);
|
}
|
|
}
|