RestInsertExample.java 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package com.gyee.adapter.init;
  2. import java.sql.*;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. /*
  6. @author 谢生杰
  7. @date 2022/8/6-16:25
  8. */
  9. public class RestInsertExample {
  10. private static Connection getConnection() throws SQLException {
  11. String jdbcUrl = "jdbc:TAOS-RS://10.81.3.164:6041?user=root&password=taosdata";
  12. return DriverManager.getConnection(jdbcUrl);
  13. }
  14. private static Connection getPgConnection() throws SQLException {
  15. Connection connection = null;
  16. try {
  17. String url = "jdbc:postgresql://10.81.3.151:5432/wisdom";
  18. String user = "gdprod";
  19. String password = "gd123";
  20. Class.forName("org.postgresql.Driver");
  21. connection = DriverManager.getConnection(url, user, password);
  22. } catch (ClassNotFoundException e) {
  23. e.printStackTrace();
  24. }
  25. return connection;
  26. }
  27. private static String getSQL(String stable,String database,String table,String name) {
  28. // INSERT INTO d1001 USING jnsx TAGS ("d1001","风速") VALUES (now, 0.0);
  29. // INSERT INTO d1001 VALUES (1538548685000, 10.3, 219, 0.31) (1538548695000, 12.6, 218, 0.33)
  30. // d1002 VALUES (1538548696800, 12.3, 221, 0.31);
  31. StringBuilder sb = new StringBuilder();
  32. String replace = table.replace(".", "_");
  33. sb.append("INSERT INTO ").append(database).append(".").append(replace).append(" USING ").append(database).append(".").append(stable);
  34. sb.append(" TAGS (\"").append(table).append("\",\"");
  35. sb.append(name).append("\") VALUES (now, 0.0)");
  36. return String.valueOf(sb);
  37. }
  38. /**
  39. * 创建超级表
  40. * @param database TD数据库名
  41. * @param stable TD超级表
  42. * @throws SQLException
  43. */
  44. public static void createStable(String database,String stable) throws SQLException {
  45. // create stable IF NOT EXISTS wisdom.stag_double ( point_time timestamp, value_double double ) tags ( tag_id binary(192),tag_name nchar(500));
  46. StringBuilder sb = new StringBuilder();
  47. sb.append("create stable IF NOT EXISTS ");
  48. sb.append(database).append(".").append(stable);
  49. sb.append(" ( point_time timestamp, value_double double ) tags ( tag_id binary(192),tag_name nchar(500))");
  50. try (Connection conn = getConnection()) {
  51. try (Statement stmt = conn.createStatement()) {
  52. stmt.execute(String.valueOf(sb));
  53. }
  54. }
  55. }
  56. /**
  57. * @param pgtable pg表名
  58. * @param realtimeid 筛选pg点
  59. * @param stable TD超级表名
  60. * @param database TD数据库名
  61. * @throws SQLException
  62. */
  63. public static void initPoint(String pgtable,String realtimeid,String stable,String database) throws SQLException {
  64. Connection pgConnection = getPgConnection();
  65. StringBuilder sb = new StringBuilder();
  66. sb.append("select * from ").append(pgtable).append(" where realtimeid='").append(realtimeid).append("'");
  67. Statement statement = pgConnection.createStatement();
  68. ResultSet resultSet = statement.executeQuery(String.valueOf(sb));
  69. while(resultSet.next()){
  70. String code = resultSet.getString("code");
  71. String name = resultSet.getString("name");
  72. String sql = getSQL(stable, database, code,name);
  73. Connection connection = getConnection();
  74. Statement statement1 = connection.createStatement();
  75. statement1.executeUpdate(sql);
  76. connection.close();
  77. statement1.close();
  78. }
  79. pgConnection.close();
  80. statement.close();
  81. resultSet.close();
  82. }
  83. public static void main(String[] args) throws SQLException {
  84. createStable("wisdom","JSFW");
  85. initPoint("windpowerstationpointnew","JSFW","JSFW","wisdom");
  86. }
  87. }