用java操作数据库

任务描述:

把已有物联网数据库稍加修改搬迁到自己数据库,用timescale DB(时序数据库)来存储。

思路:

用java的 jdbc来操作数据库。查询读出数据+创建新数据表+把数据写入新表。

环境介绍:

  • java IDE——Ideal 2020
  • 管理数据库工具——Navicat 15

ideal本身的数据库管理工具也挺好用,以后可以写一篇

在这里插入图片描述

步骤:

1.加载mysql驱动 Class.forName("com.mysql.jdbc.Driver")
2.连接数据库,注意配置时区 DriverManager.getConnection(url,user,password)
3.创建执行环境 Connection conn_mgr.createStatement();
4.执行sql语句 statement_data.executeQuery(sql)
  4.1创建表
  4.2把表设置为timescaledb表
  4.3先构造id对应表(id_match),插入一遍就好,第二遍会有主键冲突,抛出异常
  4.4主要操作,向timescale新表里插入数据

代码:

package com.cwl.JDBC;

import java.sql.*;
import java.util.concurrent.*;

public class JDBC {
   


//    建表sql
    static  String create_id_match="CREATE TABLE id_match\n" +
            "(new_devId VARCHAR(35) NOT NULL,\n" +
            "old_devId VARCHAR(35) NOT NULL,\n" +
            "primary key(new_devId,old_devId)\n" +
            ");";

    static String create_water_0011801="CREATE TABLE hourdata_0011801\n" +
            "(new_devId VARCHAR,\n" +
            "read_time TIMESTAMPTZ,\n" +
            "real_value NUMERIC,\n" +
            "dev_source int,\n" +
            "in_range int,\n" +
            "in_cycle  int ,\n" +
            "Vorigin NUMERIC,\n"+
            "primary key(new_devId,read_time)\n" +
        ");";

    static String create_electricity_00118A0="CREATE TABLE hourdata_00118A0\n" +
            "(new_devId VARCHAR,\n" +
            "read_time TIMESTAMPTZ,\n" +
            "real_value NUMERIC,\n" +
            "dev_source int,\n" +
            "in_range int,\n" +
            "in_cycle  int ,\n" +
            "Vorigin NUMERIC,\n"+
            "primary key(new_devId,read_time)\n" +
        ");";


    public static void main(String[] args) throws Exception {
   

//        1.加载mysql驱动 Class.forName("com.mysql.jdbc.Driver")
        Class.forName("com.mysql.cj.jdbc.Driver");
        Class.forName("org.postgresql.Driver");
        System.out
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值