java-TDengine rest springboot

使用TDengine的http方式操作数据库,前提:启动taosadapter,

https://download.csdn.net/download/qq_22071421/87884724?spm=1001.2014.3001.5503

工具方法:

@Slf4j
@Component
public class TaosTDengineManager {

    private static final String baseUrl="/rest/sql";

    @Value("${taosTDengine.port}")
    private String port;

    @Value("${taosTDengine.user}")
    private String user;

    @Value("${taosTDengine.host}")
    private String host;

    @Value("${taosTDengine.password}")
    private String password;

    @Value("${taosTDengine.auth}")
    private String auth;

    //表是否存在
    public boolean ifTableExists(String dataName,String tableName){
        List<String> list = queryTables(dataName);
        if(CollUtil.isNotEmpty(list)&&list.contains(tableName)){
            return true;
        }
        return false;
    }


    public List<String> queryTables(String dataName){
        String sql="SHOW "+dataName+"."+"TABLES";
        JSONObject object = restHandle(sql);
        List<String> list=new ArrayList<>();
        if (object==null) {
            return list;
        }
        if("succ".equals(object.getString("status"))){
            List<List> data = JSONArray.parseArray(object.getString("data"), List.class);
            for(List li:data){
                if(CollUtil.isNotEmpty(li)){
                    list.add(li.get(0).toString());
                }
            }
        }
        return list;
    }

    //数据库表增加一列
    public boolean alterField(String dataName,String tableName,String field,String dataType){
        String sql="ALTER TABLE "+dataName+"."+tableName+" ADD COLUMN "+field+" "+dataType;
        return sqlHandle(sql);
    }


    //数据库表数据增加一列
    public boolean insertData(String dataName,String tableName,String field,String data){
        String sql="INSERT INTO "+dataName+"."+tableName+" ("+field+") VALUES ("+data+");";
        return sqlHandle(sql);
    }

//创建表
    public boolean createTable(String dataName,String tableName,String field){
        String sql="create table if not exists "+dataName+"."+tableName+" ("+field+")";
        return sqlHandle(sql);
    }

//移除表
    public boolean dropTable(String dataName,String tableName){
        String sql="DROP table IF EXISTS "+dataName+"."+tableName;
        return sqlHandle(sql);
    }
//数据库是否存在
    public boolean ifDataExists(String data){
        List<String> list = dataNameList();
        if(CollUtil.isNotEmpty(list)&&list.contains(data)){
            return true;
        }
        return false;
    }
//创建数据库
    public boolean createData(String dataName){
        String sql="CREATE DATABASE IF NOT EXISTS "+dataName+" KEEP 3650 COMP 2 REPLICA 1 QUORUM 1 BLOCKS 3";
        return sqlHandle(sql);
    }
//移除数据库
    public boolean dropData(String dataName){
        String sql="DROP DATABASE IF EXISTS "+dataName;
        return sqlHandle(sql);
    }

    public boolean sqlHandle(String sql){
        String s = HttpUtils.sendPost(getUrl(baseUrl), sql, header());
        JSONObject object = JSONObject.parseObject(s);
        if("succ".equals(object.getString("status"))){
            return true;
        }
        log.info(JSONObject.toJSONString(object));
        return false;
    }

    public List<String> dataNameList(){
        List<String> list=new ArrayList<>();
        JSONObject object = restHandle("SHOW DATABASES");
        if (object==null) {
            return list;
        }
        if("succ".equals(object.getString("status"))){
            List<List> data = JSONArray.parseArray(object.getString("data"), List.class);
            for(List li:data){
                if(CollUtil.isNotEmpty(li)){
                    list.add(li.get(0).toString());
                }
            }
        }
        return list;
    }

    public JSONObject restHandle(String req){
        String s = HttpUtils.sendPost(getUrl(baseUrl), req, header());
        if(StringUtils.isBlank(s)){
            return null;
        }
        return JSONObject.parseObject(s);
    }

    public String getUrl(String baseUrl){
        return "http://"+host+":"+port+baseUrl;
    }

    Map<String,String> header(){
        Map<String,String> map=new HashMap<>();
        map.put("Authorization",auth);
        return map;
    }
}

第一个字段必须为timestamp,且值不能过长,生成时间工具方法getNowTimeMic()

    public static String toDateTimeString(Long time, TimeUnit unit, String format) {
        Long nanos = 0L;
        Long convertTime=null;
        if (unit.equals(TimeUnit.NANOSECONDS)) {
            nanos = time % 1000_000_000;
            convertTime=time/1000_000;
        } else if (unit.equals(TimeUnit.MICROSECONDS)) {
            nanos = time % 1000_000*1000;
            convertTime = time/1000;
        } else if (unit.equals(TimeUnit.MILLISECONDS)) {
            nanos = time % 1000*1000_000;
            convertTime=time;
        }
        Calendar calendar=Calendar.getInstance();
        calendar.setTimeInMillis(convertTime);
        LocalDateTime localDateTime = LocalDateTime.of(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH)+1, calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), calendar.get(Calendar.SECOND), nanos.intValue());
        return localDateTime.format(DateTimeFormatter.ofPattern(format));
    }

    public static String getNowTimeMic(){
        return UavManager.toDateTimeString(new Date().getTime(), TimeUnit.MILLISECONDS,"yyyy-MM-dd HH:mm:ss.SSS");
    }

修改配置

taosTDengine:
  port: 6041
  user: root
  password: taosdata
  host: 
  auth: 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暮雪...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值