diff --git a/tests/examples/JDBC/JDBCDemo/pom.xml b/tests/examples/JDBC/JDBCDemo/pom.xml
index 98f908b77e..2a862dad6e 100644
--- a/tests/examples/JDBC/JDBCDemo/pom.xml
+++ b/tests/examples/JDBC/JDBCDemo/pom.xml
@@ -10,12 +10,6 @@
jar
-
- org.apache.maven.plugins
- maven-assembly-plugin
- 3.0.0
-
-
org.apache.maven.plugins
maven-assembly-plugin
diff --git a/tests/examples/JDBC/taosdemo/pom.xml b/tests/examples/JDBC/taosdemo/pom.xml
index fa90545d41..15d3befb51 100644
--- a/tests/examples/JDBC/taosdemo/pom.xml
+++ b/tests/examples/JDBC/taosdemo/pom.xml
@@ -2,24 +2,68 @@
4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 2.4.0
-
-
com.taosdata
taosdemo
2.0
taosdemo
+ jar
Demo project for TDengine
- 1.8
+ 5.3.2
+
+
+ org.springframework
+ spring-context
+ ${spring.version}
+
+
+ org.springframework
+ spring-core
+ ${spring.version}
+
+
+ org.springframework
+ spring-beans
+ ${spring.version}
+
+
+ org.springframework
+ spring-expression
+ ${spring.version}
+
+
+ org.springframework
+ spring-aop
+ ${spring.version}
+
+
+ org.springframework
+ spring-aspects
+ ${spring.version}
+
+
+ org.springframework
+ spring-test
+ ${spring.version}
+ test
+
+
+ org.springframework
+ spring-jdbc
+ ${spring.version}
+
+
+
+
+ com.zaxxer
+ HikariCP
+ 3.4.5
+
com.taosdata.jdbc
@@ -32,69 +76,30 @@
mysql-connector-java
5.1.47
-
-
- com.baomidou
- mybatis-plus-boot-starter
- 3.1.2
-
log4j
log4j
1.2.17
-
-
-
- org.springframework.boot
- spring-boot-starter-jdbc
-
-
- org.springframework.boot
- spring-boot-starter-thymeleaf
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- org.mybatis.spring.boot
- mybatis-spring-boot-starter
- 2.1.4
-
+
junit
junit
4.12
test
-
- org.springframework.boot
- spring-boot-devtools
- runtime
- true
-
+
org.projectlombok
lombok
- true
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
+ 1.18.16
+ provided
-
- src/main/resources/lib
-
- **/*.jar
-
-
src/main/resources
@@ -103,7 +108,6 @@
true
-
src/main/java
@@ -115,10 +119,21 @@
- org.springframework.boot
- spring-boot-maven-plugin
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.0.0
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 8
+ 8
+
+
diff --git a/tests/examples/JDBC/taosdemo/readme.md b/tests/examples/JDBC/taosdemo/readme.md
index 85c147ab7c..a4b6e29769 100644
--- a/tests/examples/JDBC/taosdemo/readme.md
+++ b/tests/examples/JDBC/taosdemo/readme.md
@@ -1 +1,3 @@
-taosdemo是为了给TDengine
\ No newline at end of file
+需求:
+1. 可以读lowa的配置文件
+2. 支持对JNI方式和Restful方式的taos-driver
\ No newline at end of file
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/components/TaosDemoCommandLineRunner.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/TaosDemoApplication.java
similarity index 68%
rename from tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/components/TaosDemoCommandLineRunner.java
rename to tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/TaosDemoApplication.java
index 8113552d7e..30572ff57a 100644
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/components/TaosDemoCommandLineRunner.java
+++ b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/TaosDemoApplication.java
@@ -1,18 +1,15 @@
-package com.taosdata.taosdemo.components;
+package com.taosdata.taosdemo;
+import com.taosdata.taosdemo.components.DataSourceFactory;
import com.taosdata.taosdemo.domain.FieldMeta;
import com.taosdata.taosdemo.domain.SuperTableMeta;
import com.taosdata.taosdemo.domain.TagMeta;
import com.taosdata.taosdemo.service.DatabaseService;
import com.taosdata.taosdemo.service.InsertTask;
-import com.taosdata.taosdemo.service.SubTableService;
import com.taosdata.taosdemo.service.SuperTableService;
import com.taosdata.taosdemo.service.data.SuperTableMetaGenerator;
import com.taosdata.taosdemo.utils.JdbcTaosdemoConfig;
import org.apache.log4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.stereotype.Component;
import javax.sql.DataSource;
import java.time.Duration;
@@ -23,19 +20,12 @@ import java.util.concurrent.FutureTask;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
+public class TaosDemoApplication {
+ private static Logger logger = Logger.getLogger(TaosDemoApplication.class);
-@Component
-public class TaosDemoCommandLineRunner implements CommandLineRunner {
+ public static void main(String[] args) {
- private static Logger logger = Logger.getLogger(TaosDemoCommandLineRunner.class);
- private DatabaseService databaseService;
- private SuperTableService superTableService;
- private DataSource dataSource;
- private SuperTableMeta superTableMeta;
-
- @Override
- public void run(String... args) throws Exception {
// 读配置参数
JdbcTaosdemoConfig config = new JdbcTaosdemoConfig(args);
boolean isHelp = Arrays.asList(args).contains("--help");
@@ -44,26 +34,11 @@ public class TaosDemoCommandLineRunner implements CommandLineRunner {
System.exit(0);
}
- dataSource = DataSourceFactory.getInstance(config.host, config.port, config.user, config.password);
- databaseService = new DatabaseService(dataSource);
- superTableService = new SuperTableService(dataSource);
+ DataSource dataSource = DataSourceFactory.getInstance(config.host, config.port, config.user, config.password);
+ DatabaseService databaseService = new DatabaseService(dataSource);
+ SuperTableService superTableService = new SuperTableService(dataSource);
// 创建数据库
-// createDatabaseTask(config);
- // 超级表的meta
- superTableMeta = buildSuperTableMeta(config);
- // 建表
-// createTableTask(config);
- // 插入
- insertTask(config);
- // 删除表
- if (config.dropTable) {
- superTableService.drop(config.database, config.superTable);
- }
- System.exit(0);
- }
-
- private void createDatabaseTask(JdbcTaosdemoConfig config) {
long start = System.currentTimeMillis();
Map databaseParam = new HashMap<>();
databaseParam.put("database", config.database);
@@ -76,11 +51,37 @@ public class TaosDemoCommandLineRunner implements CommandLineRunner {
databaseService.useDatabase(config.database);
long end = System.currentTimeMillis();
logger.info(">>> create database time cost : " + (end - start) + " ms.");
- }
+ /**********************************************************************************/
+ // 超级表的meta
+ SuperTableMeta superTableMeta;
+ // create super table
+ if (config.superTableSQL != null) {
+ // use a sql to create super table
+ superTableMeta = SuperTableMetaGenerator.generate(config.superTableSQL);
+ if (config.database != null && !config.database.isEmpty())
+ superTableMeta.setDatabase(config.database);
+ } else if (config.numOfFields == 0) {
+ // default sql = "create table test.weather (ts timestamp, temperature float, humidity int) tags(location nchar(64), groupId int)";
+ superTableMeta = new SuperTableMeta();
+ superTableMeta.setDatabase(config.database);
+ superTableMeta.setName(config.superTable);
+ List fields = new ArrayList<>();
+ fields.add(new FieldMeta("ts", "timestamp"));
+ fields.add(new FieldMeta("temperature", "float"));
+ fields.add(new FieldMeta("humidity", "int"));
+ superTableMeta.setFields(fields);
+ List tags = new ArrayList<>();
+ tags.add(new TagMeta("location", "nchar(64)"));
+ tags.add(new TagMeta("groupId", "int"));
+ superTableMeta.setTags(tags);
+ } else {
+ // create super table with specified field size and tag size
+ superTableMeta = SuperTableMetaGenerator.generate(config.database, config.superTable, config.numOfFields, config.prefixOfFields, config.numOfTags, config.prefixOfTags);
+ }
- // 建超级表,三种方式:1. 指定SQL,2. 指定field和tags的个数,3. 默认
- private void createTableTask(JdbcTaosdemoConfig config) {
- long start = System.currentTimeMillis();
+ /**********************************************************************************/
+ // 建表
+ start = System.currentTimeMillis();
if (config.doCreateTable) {
superTableService.create(superTableMeta);
if (config.autoCreateTable)
@@ -88,21 +89,10 @@ public class TaosDemoCommandLineRunner implements CommandLineRunner {
// 批量建子表
// subTableService.createSubTable(superTableMeta, config.numOfTables, config.prefixOfTable, config.numOfThreadsForCreate);
}
- long end = System.currentTimeMillis();
+ end = System.currentTimeMillis();
logger.info(">>> create table time cost : " + (end - start) + " ms.");
- }
-
- private long getProperStartTime(JdbcTaosdemoConfig config) {
- Instant now = Instant.now();
- long earliest = now.minus(Duration.ofDays(config.keep)).toEpochMilli();
- long startTime = config.startTime;
- if (startTime == 0 || startTime < earliest) {
- startTime = earliest;
- }
- return startTime;
- }
-
- private void insertTask(JdbcTaosdemoConfig config) {
+ /**********************************************************************************/
+ // 插入
long tableSize = config.numOfTables;
int threadSize = config.numOfThreadsForInsert;
long startTime = getProperStartTime(config);
@@ -111,7 +101,7 @@ public class TaosDemoCommandLineRunner implements CommandLineRunner {
threadSize = (int) tableSize;
long gap = (long) Math.ceil((0.0d + tableSize) / threadSize);
- long start = System.currentTimeMillis();
+ start = System.currentTimeMillis();
List taskList = new ArrayList<>();
List threads = IntStream.range(0, threadSize)
@@ -150,47 +140,24 @@ public class TaosDemoCommandLineRunner implements CommandLineRunner {
}
}
- long end = System.currentTimeMillis();
+ end = System.currentTimeMillis();
logger.info("insert " + affectedRows + " rows, time cost: " + (end - start) + " ms");
-// long numOfTables = config.numOfTables;
-// int numOfTablesPerSQL = config.numOfTablesPerSQL;
-// long numOfRowsPerTable = config.numOfRowsPerTable;
-// int numOfValuesPerSQL = config.numOfValuesPerSQL;
-
-// long start = System.currentTimeMillis();
-// long affectRows = 0;
-// long end = System.currentTimeMillis();
-// logger.info(">>> insert " + affectRows + " rows with time cost: " + (end - start) + "ms");
+ /**********************************************************************************/
+ // 删除表
+ if (config.dropTable) {
+ superTableService.drop(config.database, config.superTable);
+ }
+ System.exit(0);
}
- private SuperTableMeta buildSuperTableMeta(JdbcTaosdemoConfig config) {
- SuperTableMeta tableMeta;
- // create super table
- if (config.superTableSQL != null) {
- // use a sql to create super table
- tableMeta = SuperTableMetaGenerator.generate(config.superTableSQL);
- if (config.database != null && !config.database.isEmpty())
- tableMeta.setDatabase(config.database);
- } else if (config.numOfFields == 0) {
- // default sql = "create table test.weather (ts timestamp, temperature float, humidity int) tags(location nchar(64), groupId int)";
- SuperTableMeta superTableMeta = new SuperTableMeta();
- superTableMeta.setDatabase(config.database);
- superTableMeta.setName(config.superTable);
- List fields = new ArrayList<>();
- fields.add(new FieldMeta("ts", "timestamp"));
- fields.add(new FieldMeta("temperature", "float"));
- fields.add(new FieldMeta("humidity", "int"));
- superTableMeta.setFields(fields);
- List tags = new ArrayList<>();
- tags.add(new TagMeta("location", "nchar(64)"));
- tags.add(new TagMeta("groupId", "int"));
- superTableMeta.setTags(tags);
- return superTableMeta;
- } else {
- // create super table with specified field size and tag size
- tableMeta = SuperTableMetaGenerator.generate(config.database, config.superTable, config.numOfFields, config.prefixOfFields, config.numOfTags, config.prefixOfTags);
+ private static long getProperStartTime(JdbcTaosdemoConfig config) {
+ Instant now = Instant.now();
+ long earliest = now.minus(Duration.ofDays(config.keep)).toEpochMilli();
+ long startTime = config.startTime;
+ if (startTime == 0 || startTime < earliest) {
+ startTime = earliest;
}
- return tableMeta;
+ return startTime;
}
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/TaosdemoApplication.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/TaosdemoApplication.java
deleted file mode 100644
index ec36705f6e..0000000000
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/TaosdemoApplication.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.taosdata.taosdemo;
-
-import com.zaxxer.hikari.HikariDataSource;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ConfigurableApplicationContext;
-
-import javax.sql.DataSource;
-
-@MapperScan(basePackages = {"com.taosdata.taosdemo.mapper"})
-@SpringBootApplication
-public class TaosdemoApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(TaosdemoApplication.class, args);
-
- }
-
-}
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/controller/DatabaseController.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/controller/DatabaseController.java
deleted file mode 100644
index 1cf1463f0a..0000000000
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/controller/DatabaseController.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package com.taosdata.taosdemo.controller;
-
-import com.taosdata.taosdemo.service.DatabaseService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Map;
-
-@RestController
-@RequestMapping
-public class DatabaseController {
-
- @Autowired
- private DatabaseService databaseService;
-
- /**
- * create database
- ***/
- @PostMapping
- public int create(@RequestBody Map map) {
- return databaseService.createDatabase(map);
- }
-
-
- /**
- * drop database
- **/
- @DeleteMapping("/{dbname}")
- public int delete(@PathVariable("dbname") String dbname) {
- return databaseService.dropDatabase(dbname);
- }
-
- /**
- * use database
- **/
- @GetMapping("/{dbname}")
- public int use(@PathVariable("dbname") String dbname) {
- return databaseService.useDatabase(dbname);
- }
-}
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/controller/InsertController.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/controller/InsertController.java
deleted file mode 100644
index 788f68a30a..0000000000
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/controller/InsertController.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.taosdata.taosdemo.controller;
-
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-public class InsertController {
-
- //TODO:多线程写一张表, thread = 10, table = 1
- //TODO:一个批次写多张表, insert into t1 using weather values() t2 using weather values()
- //TODO:插入的频率,
- //TODO:指定一张表内的records数量
- //TODO:是否乱序,
- //TODO:乱序的比例,乱序的范围
- //TODO:先建表,自动建表
- //TODO:一个批次写多张表
-
-}
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/controller/SubTableController.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/controller/SubTableController.java
deleted file mode 100644
index 797c3708d3..0000000000
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/controller/SubTableController.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.taosdata.taosdemo.controller;
-
-import com.taosdata.taosdemo.domain.TableValue;
-import com.taosdata.taosdemo.service.SuperTableService;
-import com.taosdata.taosdemo.service.TableService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-public class SubTableController {
-
- @Autowired
- private TableService tableService;
- @Autowired
- private SuperTableService superTableService;
-
- //TODO: 使用supertable创建一个子表
-
- //TODO:使用supertable创建多个子表
-
- //TODO:使用supertable多线程创建子表
-
- //TODO:使用supertable多线程创建子表,指定子表的name_prefix,子表的数量,使用线程的个数
-
- /**
- * 创建表,超级表或者普通表
- **/
-
-
- /**
- * 创建超级表的子表
- **/
- @PostMapping("/{database}/{superTable}")
- public int createTable(@PathVariable("database") String database,
- @PathVariable("superTable") String superTable,
- @RequestBody TableValue tableMetadta) {
- tableMetadta.setDatabase(database);
- return 0;
- }
-
-
-}
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/controller/SuperTableController.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/controller/SuperTableController.java
deleted file mode 100644
index cf53c1440f..0000000000
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/controller/SuperTableController.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.taosdata.taosdemo.controller;
-
-import com.taosdata.taosdemo.domain.SuperTableMeta;
-import com.taosdata.taosdemo.service.SuperTableService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-
-public class SuperTableController {
- @Autowired
- private SuperTableService superTableService;
-
-
- @PostMapping("/{database}")
- public int createTable(@PathVariable("database") String database, @RequestBody SuperTableMeta tableMetadta) {
- tableMetadta.setDatabase(database);
- return superTableService.create(tableMetadta);
- }
-
- //TODO: 删除超级表
-
- //TODO:查询超级表
-
- //TODO:统计查询表
-}
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/controller/TableController.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/controller/TableController.java
deleted file mode 100644
index dbdd978e74..0000000000
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/controller/TableController.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.taosdata.taosdemo.controller;
-
-public class TableController {
-
- //TODO:创建普通表,create table(ts timestamp, temperature float)
-
- //TODO:创建普通表,指定表的列数,包括第一列timestamp
-
- //TODO:创建普通表,指定表每列的name和type
-
-}
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/DatabaseMapper.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/DatabaseMapper.java
similarity index 52%
rename from tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/DatabaseMapper.java
rename to tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/DatabaseMapper.java
index e535ed1f98..eba77c2a7e 100644
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/DatabaseMapper.java
+++ b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/DatabaseMapper.java
@@ -1,6 +1,5 @@
-package com.taosdata.taosdemo.mapper;
+package com.taosdata.taosdemo.dao;
-import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.Map;
@@ -9,16 +8,16 @@ import java.util.Map;
public interface DatabaseMapper {
// create database if not exists XXX
- int createDatabase(@Param("database") String dbname);
+ void createDatabase(String dbname);
// drop database if exists XXX
- int dropDatabase(@Param("database") String dbname);
+ void dropDatabase(String dbname);
// create database if not exists XXX keep XX days XX replica XX
- int createDatabaseWithParameters(Map map);
+ void createDatabaseWithParameters(Map map);
// use XXX
- int useDatabase(@Param("database") String dbname);
+ void useDatabase(String dbname);
//TODO: alter database
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/SubTableMapper.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/SubTableMapper.java
similarity index 68%
rename from tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/SubTableMapper.java
rename to tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/SubTableMapper.java
index d23473ba31..e0ddd220c1 100644
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/SubTableMapper.java
+++ b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/SubTableMapper.java
@@ -1,8 +1,7 @@
-package com.taosdata.taosdemo.mapper;
+package com.taosdata.taosdemo.dao;
import com.taosdata.taosdemo.domain.SubTableMeta;
import com.taosdata.taosdemo.domain.SubTableValue;
-import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -11,7 +10,7 @@ import java.util.List;
public interface SubTableMapper {
// 创建:子表
- int createUsingSuperTable(SubTableMeta subTableMeta);
+ void createUsingSuperTable(SubTableMeta subTableMeta);
// 插入:一张子表多个values
int insertOneTableMultiValues(SubTableValue subTableValue);
@@ -20,10 +19,10 @@ public interface SubTableMapper {
int insertOneTableMultiValuesUsingSuperTable(SubTableValue subTableValue);
// 插入:多张表多个values
- int insertMultiTableMultiValues(@Param("tables") List tables);
+ int insertMultiTableMultiValues(List tables);
// 插入:多张表多个values,自动建表
- int insertMultiTableMultiValuesUsingSuperTable(@Param("tables") List tables);
+ int insertMultiTableMultiValuesUsingSuperTable(List tables);
//
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/SuperTableMapper.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/SuperTableMapper.java
similarity index 70%
rename from tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/SuperTableMapper.java
rename to tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/SuperTableMapper.java
index c8610fac90..9f8cec9e8f 100644
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/SuperTableMapper.java
+++ b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/SuperTableMapper.java
@@ -1,20 +1,16 @@
-package com.taosdata.taosdemo.mapper;
+package com.taosdata.taosdemo.dao;
import com.taosdata.taosdemo.domain.SuperTableMeta;
-import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Repository
public interface SuperTableMapper {
- // 创建超级表,使用自己定义的SQL语句
- int createSuperTableUsingSQL(@Param("createSuperTableSQL") String sql);
-
// 创建超级表 create table if not exists xxx.xxx (f1 type1, f2 type2, ... ) tags( t1 type1, t2 type2 ...)
- int createSuperTable(SuperTableMeta tableMetadata);
+ void createSuperTable(SuperTableMeta tableMetadata);
// 删除超级表 drop table if exists xxx;
- int dropSuperTable(@Param("database") String database, @Param("name") String name);
+ void dropSuperTable(String database, String name);
//
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/TableMapper.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/TableMapper.java
similarity index 65%
rename from tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/TableMapper.java
rename to tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/TableMapper.java
index f00f6c9694..32d1875e4d 100644
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/TableMapper.java
+++ b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/TableMapper.java
@@ -1,8 +1,7 @@
-package com.taosdata.taosdemo.mapper;
+package com.taosdata.taosdemo.dao;
import com.taosdata.taosdemo.domain.TableMeta;
import com.taosdata.taosdemo.domain.TableValue;
-import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@@ -11,7 +10,7 @@ import java.util.List;
public interface TableMapper {
// 创建:普通表
- int create(TableMeta tableMeta);
+ void create(TableMeta tableMeta);
// 插入:一张表多个value
int insertOneTableMultiValues(TableValue values);
@@ -20,9 +19,9 @@ public interface TableMapper {
int insertOneTableMultiValuesWithColumns(TableValue values);
// 插入:多个表多个value
- int insertMultiTableMultiValues(@Param("tables") List tables);
+ int insertMultiTableMultiValues(List tables);
// 插入:多个表多个value, 指定的列
- int insertMultiTableMultiValuesWithColumns(@Param("tables") List tables);
+ int insertMultiTableMultiValuesWithColumns(List tables);
}
\ No newline at end of file
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/impl/DatabaseMapperImpl.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/impl/DatabaseMapperImpl.java
new file mode 100644
index 0000000000..44f2b27900
--- /dev/null
+++ b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/impl/DatabaseMapperImpl.java
@@ -0,0 +1,32 @@
+package com.taosdata.taosdemo.dao.impl;
+
+import com.taosdata.taosdemo.dao.DatabaseMapper;
+import com.taosdata.taosdemo.utils.SqlSpeller;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+import java.util.Map;
+
+public class DatabaseMapperImpl implements DatabaseMapper {
+
+ private JdbcTemplate jdbcTemplate = new JdbcTemplate();
+
+ @Override
+ public void createDatabase(String dbname) {
+ jdbcTemplate.execute("create database if not exists " + dbname);
+ }
+
+ @Override
+ public void dropDatabase(String dbname) {
+ jdbcTemplate.update("drop database if exists" + dbname);
+ }
+
+ @Override
+ public void createDatabaseWithParameters(Map map) {
+ jdbcTemplate.execute(SqlSpeller.createDatabase(map));
+ }
+
+ @Override
+ public void useDatabase(String dbname) {
+ jdbcTemplate.execute("use " + dbname);
+ }
+}
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/impl/SubTableMapperImpl.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/impl/SubTableMapperImpl.java
new file mode 100644
index 0000000000..586890965b
--- /dev/null
+++ b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/impl/SubTableMapperImpl.java
@@ -0,0 +1,45 @@
+package com.taosdata.taosdemo.dao.impl;
+
+import com.taosdata.taosdemo.dao.SubTableMapper;
+import com.taosdata.taosdemo.domain.SubTableMeta;
+import com.taosdata.taosdemo.domain.SubTableValue;
+import com.taosdata.taosdemo.utils.SqlSpeller;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+import java.util.List;
+
+public class SubTableMapperImpl implements SubTableMapper {
+
+ private JdbcTemplate jdbcTemplate;
+
+ @Override
+ public void createUsingSuperTable(SubTableMeta subTableMeta) {
+ String sql = SqlSpeller.createTableUsingSuperTable(subTableMeta);
+ jdbcTemplate.execute(sql);
+ }
+
+ @Override
+ public int insertOneTableMultiValues(SubTableValue subTableValue) {
+ String sql = SqlSpeller.insertOneTableMultiValues(subTableValue);
+ return jdbcTemplate.update(sql);
+ }
+
+
+ @Override
+ public int insertOneTableMultiValuesUsingSuperTable(SubTableValue subTableValue) {
+ String sql = SqlSpeller.insertOneTableMultiValuesUsingSuperTable(subTableValue);
+ return jdbcTemplate.update(sql);
+ }
+
+ @Override
+ public int insertMultiTableMultiValues(List tables) {
+ String sql = SqlSpeller.insertMultiSubTableMultiValues(tables);
+ return jdbcTemplate.update(sql);
+ }
+
+ @Override
+ public int insertMultiTableMultiValuesUsingSuperTable(List tables) {
+ String sql = SqlSpeller.insertMultiTableMultiValuesUsingSuperTable(tables);
+ return jdbcTemplate.update(sql);
+ }
+}
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/impl/SuperTableMapperImpl.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/impl/SuperTableMapperImpl.java
new file mode 100644
index 0000000000..91f19a1bc3
--- /dev/null
+++ b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/impl/SuperTableMapperImpl.java
@@ -0,0 +1,22 @@
+package com.taosdata.taosdemo.dao.impl;
+
+import com.taosdata.taosdemo.dao.SuperTableMapper;
+import com.taosdata.taosdemo.domain.SuperTableMeta;
+import com.taosdata.taosdemo.utils.SqlSpeller;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+public class SuperTableMapperImpl implements SuperTableMapper {
+
+ private JdbcTemplate jdbcTemplate;
+
+ @Override
+ public void createSuperTable(SuperTableMeta tableMetadata) {
+ String sql = SqlSpeller.createSuperTable(tableMetadata);
+ jdbcTemplate.execute(sql);
+ }
+
+ @Override
+ public void dropSuperTable(String database, String name) {
+ jdbcTemplate.execute("drop table if exists " + database + "." + name);
+ }
+}
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/impl/TableMapperImpl.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/impl/TableMapperImpl.java
new file mode 100644
index 0000000000..4555923b00
--- /dev/null
+++ b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/dao/impl/TableMapperImpl.java
@@ -0,0 +1,43 @@
+package com.taosdata.taosdemo.dao.impl;
+
+import com.taosdata.taosdemo.dao.TableMapper;
+import com.taosdata.taosdemo.domain.TableMeta;
+import com.taosdata.taosdemo.domain.TableValue;
+import com.taosdata.taosdemo.utils.SqlSpeller;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+import java.util.List;
+
+public class TableMapperImpl implements TableMapper {
+ private JdbcTemplate template;
+
+ @Override
+ public void create(TableMeta tableMeta) {
+ String sql = SqlSpeller.createTable(tableMeta);
+ template.execute(sql);
+ }
+
+ @Override
+ public int insertOneTableMultiValues(TableValue values) {
+ String sql = SqlSpeller.insertOneTableMultiValues(values);
+ return template.update(sql);
+ }
+
+ @Override
+ public int insertOneTableMultiValuesWithColumns(TableValue values) {
+ String sql = SqlSpeller.insertOneTableMultiValuesWithColumns(values);
+ return template.update(sql);
+ }
+
+ @Override
+ public int insertMultiTableMultiValues(List tables) {
+ String sql = SqlSpeller.insertMultiTableMultiValues(tables);
+ return template.update(sql);
+ }
+
+ @Override
+ public int insertMultiTableMultiValuesWithColumns(List tables) {
+ String sql = SqlSpeller.insertMultiTableMultiValuesWithColumns(tables);
+ return template.update(sql);
+ }
+}
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/domain/RowValue.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/domain/RowValue.java
index a9f216f679..a444fa78dc 100644
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/domain/RowValue.java
+++ b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/domain/RowValue.java
@@ -8,7 +8,6 @@ import java.util.List;
public class RowValue {
private List fields;
-
public RowValue(List fields) {
this.fields = fields;
}
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/DatabaseMapper.xml b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/DatabaseMapper.xml
deleted file mode 100644
index 1a1de34842..0000000000
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/DatabaseMapper.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
-
-
- create database if not exists ${database}
-
-
-
- DROP database if exists ${database}
-
-
-
- CREATE database if not exists ${database}
-
- KEEP ${keep}
-
-
- DAYS ${days}
-
-
- REPLICA ${replica}
-
-
- cache ${cache}
-
-
- blocks ${blocks}
-
-
- minrows ${minrows}
-
-
- maxrows ${maxrows}
-
-
-
-
- use ${database}
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/SubTableMapper.xml b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/SubTableMapper.xml
deleted file mode 100644
index 2fb94e99b7..0000000000
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/SubTableMapper.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
-
-
-
-
- CREATE table IF NOT EXISTS ${database}.${name} USING ${supertable} TAGS
-
- #{tag.value}
-
-
-
-
-
- INSERT INTO ${database}.${name}
- VALUES
-
-
- #{field.value}
-
-
-
-
-
-
- INSERT INTO ${database}.${name} USING ${supertable} TAGS
-
- #{tag.value}
-
- VALUES
-
-
- #{field.value}
-
-
-
-
-
-
-
-
-
-
- INSERT INTO
-
- ${table.database}.${table.name}
- VALUES
-
-
- #{field.value}
-
-
-
-
-
-
-
- INSERT INTO
-
- ${table.database}.${table.name} USING ${table.supertable} TAGS
-
- #{tag.value}
-
- VALUES
-
-
- #{field.value}
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/SuperTableMapper.xml b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/SuperTableMapper.xml
deleted file mode 100644
index 8b83d57a4b..0000000000
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/SuperTableMapper.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
- ${createSuperTableSQL}
-
-
-
-
- create table if not exists ${database}.${name}
-
- ${field.name} ${field.type}
-
- tags
-
- ${tag.name} ${tag.type}
-
-
-
-
-
- drop table if exists ${database}.${name}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/TableMapper.xml b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/TableMapper.xml
deleted file mode 100644
index e2e7cbb30d..0000000000
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/TableMapper.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
-
-
-
- create table if not exists ${database}.${name}
-
- ${field.name} ${field.type}
-
-
-
-
-
- insert into ${database}.${name} values
-
-
- ${field.value}
-
-
-
-
-
-
- insert into ${database}.${name}
-
- ${column.name}
-
- values
-
-
- ${field.value}
-
-
-
-
-
-
- insert into
-
- ${table.database}.${table.name} values
-
-
- ${field.value}
-
-
-
-
-
-
-
- insert into
-
- ${table.database}.${table.name}
-
- ${column.name}
-
- values
-
-
- ${field.value}
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/impl/SubTableMapperImpl.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/impl/SubTableMapperImpl.java
deleted file mode 100644
index 6904fc3060..0000000000
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/mapper/impl/SubTableMapperImpl.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.taosdata.taosdemo.mapper.impl;
-
-import com.taosdata.taosdemo.domain.SubTableMeta;
-import com.taosdata.taosdemo.domain.SubTableValue;
-import com.taosdata.taosdemo.mapper.SubTableMapper;
-import org.springframework.jdbc.core.JdbcTemplate;
-
-import java.util.List;
-
-public class SubTableMapperImpl implements SubTableMapper {
-
- private JdbcTemplate jdbcTemplate;
-
- @Override
- public int createUsingSuperTable(SubTableMeta subTableMeta) {
- return 0;
- }
-
- @Override
- public int insertOneTableMultiValues(SubTableValue subTableValue) {
- return 0;
- }
-
- @Override
- public int insertOneTableMultiValuesUsingSuperTable(SubTableValue subTableValue) {
- return 0;
- }
-
- @Override
- public int insertMultiTableMultiValues(List tables) {
- return 0;
- }
-
- @Override
- public int insertMultiTableMultiValuesUsingSuperTable(List tables) {
- return 0;
- }
-}
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/DatabaseService.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/DatabaseService.java
index 013bdc8a71..e30a65e900 100644
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/DatabaseService.java
+++ b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/DatabaseService.java
@@ -1,6 +1,6 @@
package com.taosdata.taosdemo.service;
-import com.taosdata.taosdemo.mapper.DatabaseMapper;
+import com.taosdata.taosdemo.dao.DatabaseMapper;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/SubTableService.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/SubTableService.java
index 31f105a777..d76e92bffa 100644
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/SubTableService.java
+++ b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/SubTableService.java
@@ -1,11 +1,8 @@
package com.taosdata.taosdemo.service;
+import com.taosdata.taosdemo.dao.SubTableMapper;
import com.taosdata.taosdemo.domain.*;
-import com.taosdata.taosdemo.mapper.SubTableMapper;
import com.taosdata.taosdemo.service.data.SubTableMetaGenerator;
-import com.taosdata.taosdemo.utils.TimeStampUtil;
-import com.zaxxer.hikari.pool.HikariPool;
-import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -20,7 +17,6 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicLong;
@Service
public class SubTableService extends AbstractService {
@@ -52,8 +48,7 @@ public class SubTableService extends AbstractService {
ExecutorService executor = Executors.newFixedThreadPool(threadSize);
List> futureList = new ArrayList<>();
for (SubTableMeta subTableMeta : subTables) {
- Future future = executor.submit(() -> createSubTable(subTableMeta));
- futureList.add(future);
+ executor.submit(() -> createSubTable(subTableMeta));
}
executor.shutdown();
return getAffectRows(futureList);
@@ -75,8 +70,8 @@ public class SubTableService extends AbstractService {
}
// 创建一张子表,可以指定database,supertable,tablename,tag值
- public int createSubTable(SubTableMeta subTableMeta) {
- return mapper.createUsingSuperTable(subTableMeta);
+ public void createSubTable(SubTableMeta subTableMeta) {
+ mapper.createUsingSuperTable(subTableMeta);
}
// 单线程创建多张子表,每张子表分别可以指定自己的database,supertable,tablename,tag值
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/SuperTableService.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/SuperTableService.java
index e196da00b6..d58d37fcd7 100644
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/SuperTableService.java
+++ b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/SuperTableService.java
@@ -1,9 +1,8 @@
package com.taosdata.taosdemo.service;
-import com.taosdata.taosdemo.domain.FieldMeta;
+import com.taosdata.taosdemo.dao.SuperTableMapper;
import com.taosdata.taosdemo.domain.SuperTableMeta;
-import com.taosdata.taosdemo.domain.TagMeta;
-import com.taosdata.taosdemo.mapper.SuperTableMapper;
+import com.taosdata.taosdemo.utils.SqlSpeller;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -12,7 +11,6 @@ import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
-import java.util.List;
@Service
public class SuperTableService {
@@ -33,7 +31,7 @@ public class SuperTableService {
try {
Connection connection = dataSource.getConnection();
Statement statement = connection.createStatement();
- String sql = sql(superTableMeta);
+ String sql = SqlSpeller.createSuperTable(superTableMeta);
logger.info(">>> " + sql);
result = statement.executeUpdate(sql);
statement.close();
@@ -42,33 +40,6 @@ public class SuperTableService {
e.printStackTrace();
}
return result;
-// return superTableMapper.createSuperTable(superTableMeta);
- }
-
- private String sql(SuperTableMeta superTableMeta) {
- StringBuilder sb = new StringBuilder();
- sb.append("create table " + superTableMeta.getDatabase() + "." + superTableMeta.getName() + "(");
- List fields = superTableMeta.getFields();
- for (int i = 0; i < fields.size(); i++) {
- FieldMeta fieldMeta = fields.get(i);
- if (i == 0) {
- sb.append(fieldMeta.getName() + " " + fieldMeta.getType());
- } else {
- sb.append(", " + fieldMeta.getName() + " " + fieldMeta.getType());
- }
- }
- sb.append(") tags(");
- List tags = superTableMeta.getTags();
- for (int i = 0; i < tags.size(); i++) {
- TagMeta tagMeta = tags.get(i);
- if (i == 0) {
- sb.append(tagMeta.getName() + " " + tagMeta.getType());
- } else {
- sb.append(", " + tagMeta.getName() + " " + tagMeta.getType() + "");
- }
- }
- sb.append(")");
- return sb.toString();
}
public void drop(String database, String name) {
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/TableService.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/TableService.java
index bada6de708..b4ad2d17e5 100644
--- a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/TableService.java
+++ b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/service/TableService.java
@@ -1,41 +1,25 @@
package com.taosdata.taosdemo.service;
+import com.taosdata.taosdemo.dao.TableMapper;
import com.taosdata.taosdemo.domain.TableMeta;
-import com.taosdata.taosdemo.mapper.TableMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.util.ArrayList;
import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
@Service
public class TableService extends AbstractService {
- @Autowired
private TableMapper tableMapper;
//创建一张表
- public int create(TableMeta tableMeta) {
- return tableMapper.create(tableMeta);
+ public void create(TableMeta tableMeta) {
+ tableMapper.create(tableMeta);
}
//创建多张表
- public int create(List tables) {
- return create(tables, 1);
- }
-
- //多线程创建多张表
- public int create(List tables, int threadSize) {
- ExecutorService executors = Executors.newFixedThreadPool(threadSize);
- List> futures = new ArrayList<>();
- for (TableMeta table : tables) {
- Future future = executors.submit(() -> create(table));
- futures.add(future);
- }
- return getAffectRows(futures);
+ public void create(List tables) {
+ tables.stream().forEach(this::create);
}
diff --git a/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/utils/SqlSpeller.java b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/utils/SqlSpeller.java
new file mode 100644
index 0000000000..a95e511407
--- /dev/null
+++ b/tests/examples/JDBC/taosdemo/src/main/java/com/taosdata/taosdemo/utils/SqlSpeller.java
@@ -0,0 +1,189 @@
+package com.taosdata.taosdemo.utils;
+
+import com.taosdata.taosdemo.domain.*;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+public class SqlSpeller {
+
+ // create database if not exists xxx keep xx days xx replica xx cache xx...
+ public static String createDatabase(Map map) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("create database if not exists ").append(map.get("database")).append(" ");
+ if (map.containsKey("keep"))
+ sb.append("keep ").append(map.get("keep")).append(" ");
+ if (map.containsKey("days"))
+ sb.append("days ").append(map.get("days")).append(" ");
+ if (map.containsKey("replica"))
+ sb.append("replica ").append(map.get("replica")).append(" ");
+ if (map.containsKey("cache"))
+ sb.append("cache ").append(map.get("cache")).append(" ");
+ if (map.containsKey("blocks"))
+ sb.append("blocks ").append(map.get("blocks")).append(" ");
+ if (map.containsKey("minrows"))
+ sb.append("minrows ").append(map.get("minrows")).append(" ");
+ if (map.containsKey("maxrows"))
+ sb.append("maxrows ").append(map.get("maxrows")).append(" ");
+ if (map.containsKey("precision"))
+ sb.append("precision ").append(map.get("precision")).append(" ");
+ if (map.containsKey("comp"))
+ sb.append("comp ").append(map.get("comp")).append(" ");
+ if (map.containsKey("walLevel"))
+ sb.append("walLevel ").append(map.get("walLevel")).append(" ");
+ if (map.containsKey("quorum"))
+ sb.append("quorum ").append(map.get("quorum")).append(" ");
+ if (map.containsKey("fsync"))
+ sb.append("fsync ").append(map.get("fsync")).append(" ");
+ if (map.containsKey("update"))
+ sb.append("update ").append(map.get("update")).append(" ");
+ return sb.toString();
+ }
+
+ // create table if not exists xx.xx using xx.xx tags(x,x,x)
+ public static String createTableUsingSuperTable(SubTableMeta subTableMeta) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("create table if not exists ").append(subTableMeta.getDatabase()).append(".").append(subTableMeta.getName()).append(" ");
+ sb.append("using ").append(subTableMeta.getDatabase()).append(".").append(subTableMeta.getSupertable()).append(" ");
+ String tagStr = subTableMeta.getTags().stream().filter(Objects::nonNull)
+ .map(tagValue -> tagValue.getName() + " " + tagValue.getValue() + " ")
+ .collect(Collectors.joining(",", "(", ")"));
+ sb.append("tags ").append(tagStr);
+ return sb.toString();
+ }
+
+ // insert into xx.xxx values(x,x,x),(x,x,x)...
+ public static String insertOneTableMultiValues(SubTableValue subTableValue) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("insert into ").append(subTableValue.getDatabase()).append(".").append(subTableValue.getName() + " ");
+ sb.append("values").append(rowValues(subTableValue.getValues()));
+ return sb.toString();
+ }
+
+ //f1, f2, f3
+ private static String fieldValues(List fields) {
+ return fields.stream()
+ .filter(Objects::nonNull)
+ .map(fieldValue -> "'" + fieldValue.getValue() + "'")
+ .collect(Collectors.joining(",", "(", ")"));
+ }
+
+ //(f1, f2, f3),(f1, f2, f3)
+ private static String rowValues(List rowValues) {
+ return rowValues.stream().filter(Objects::nonNull)
+ .map(rowValue -> fieldValues(rowValue.getFields()))
+ .collect(Collectors.joining(",", "", ""));
+ }
+
+ // insert into xx.xxx using xx.xx tags(x,x,x) values(x,x,x),(x,x,x)...
+ public static String insertOneTableMultiValuesUsingSuperTable(SubTableValue subTableValue) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("insert into ").append(subTableValue.getDatabase()).append(".").append(subTableValue.getName()).append(" ");
+ sb.append("using ").append(subTableValue.getDatabase()).append(".").append(subTableValue.getSupertable()).append(" ");
+ sb.append("tags ").append(tagValues(subTableValue.getTags()) + " ");
+ sb.append("values ").append(rowValues(subTableValue.getValues()));
+ return sb.toString();
+ }
+
+ // (t1,t2,t3...)
+ private static String tagValues(List tags) {
+ return tags.stream().filter(Objects::nonNull)
+ .map(tagValue -> "'" + tagValue.getValue() + "'")
+ .collect(Collectors.joining(",", "(", ")"));
+ }
+
+ // insert into xx.xx values(),(),()... xx.xx values(),()...
+ public static String insertMultiSubTableMultiValues(List tables) {
+ return "insert into " + tables.stream().filter(Objects::nonNull)
+ .map(table -> table.getDatabase() + "." + table.getName() + " values " + rowValues(table.getValues()))
+ .collect(Collectors.joining(" ", "", ""));
+ }
+
+ // insert into xx.xx using xx.xx tags(xx,xx) values(),()...
+ public static String insertMultiTableMultiValuesUsingSuperTable(List tables) {
+ return "insert into " + tables.stream().filter(Objects::nonNull)
+ .map(table -> {
+ StringBuilder sb = new StringBuilder();
+ sb.append(table.getDatabase()).append(".").append(table.getName());
+ sb.append(" using ").append(table.getDatabase()).append(".").append(table.getSupertable());
+ sb.append(" tags ").append(tagValues(table.getTags()));
+ sb.append(" values ").append(rowValues(table.getValues()));
+ return sb.toString();
+ }).collect(Collectors.joining(" "));
+ }
+
+ // create table if not exists xx.xx (f1 xx,f2 xx...) tags(t1 xx, t2 xx...)
+ public static String createSuperTable(SuperTableMeta tableMetadata) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("create table if not exists ").append(tableMetadata.getDatabase()).append(".").append(tableMetadata.getName());
+ String fields = tableMetadata.getFields().stream()
+ .filter(Objects::nonNull).map(field -> field.getName() + " " + field.getType() + " ")
+ .collect(Collectors.joining(",", "(", ")"));
+ sb.append(fields);
+ sb.append(" tags ");
+ String tags = tableMetadata.getTags().stream().filter(Objects::nonNull)
+ .map(tag -> tag.getName() + " " + tag.getType() + " ")
+ .collect(Collectors.joining(",", "(", ")"));
+ sb.append(tags);
+ return sb.toString();
+ }
+
+
+ public static String createTable(TableMeta tableMeta) {
+// create table if not exists ${database}.${name}
+//
+// ${field.name} ${field.type}
+//
+ StringBuilder sb = new StringBuilder();
+ sb.append("create table if not exists ").append(tableMeta.getDatabase()).append(".").append(tableMeta.getName()).append(" ");
+ String fields = tableMeta.getFields().stream()
+ .filter(Objects::nonNull).map(field -> field.getName() + " " + field.getType() + " ")
+ .collect(Collectors.joining(",", "(", ")"));
+ sb.append(fields);
+ return sb.toString();
+ }
+
+ // insert into xx.xx values()
+ public static String insertOneTableMultiValues(TableValue table) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("insert into ").append(table.getDatabase()).append(".").append(table.getName() + " ");
+ sb.append("values").append(rowValues(table.getValues()));
+ return sb.toString();
+
+ }
+
+ // insert into xx.xx (f1, f2, f3...) values(xx,xx,xx),(xx,xx,xx)...
+ public static String insertOneTableMultiValuesWithColumns(TableValue table) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("insert into ").append(table.getDatabase()).append(".").append(table.getName()).append(" ");
+ sb.append(columnNames(table.getColumns()));
+ sb.append(" values ").append(rowValues(table.getValues()));
+ return sb.toString();
+ }
+
+ // (f1, f2, f3...)
+ private static String columnNames(List fields) {
+ return fields.stream()
+ .filter(Objects::nonNull)
+ .map(column -> column.getName() + " ")
+ .collect(Collectors.joining(",", "(", ")"));
+ }
+
+ public static String insertMultiTableMultiValuesWithColumns(List tables) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("insert into ").append(tables.stream().filter(Objects::nonNull)
+ .map(table -> table.getDatabase() + "." + table.getName() + " " + columnNames(table.getColumns()) + " values " + rowValues(table.getValues()))
+ .collect(Collectors.joining(" ")));
+ return sb.toString();
+ }
+
+ public static String insertMultiTableMultiValues(List tables) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("insert into ").append(tables.stream().filter(Objects::nonNull).map(table ->
+ table.getDatabase() + "." + table.getName() + " values " + rowValues(table.getValues())
+ ).collect(Collectors.joining(" ")));
+ return sb.toString();
+ }
+}
diff --git a/tests/examples/JDBC/taosdemo/src/main/resources/application.properties b/tests/examples/JDBC/taosdemo/src/main/resources/application.properties
index c9bd914851..a7f5a1529a 100644
--- a/tests/examples/JDBC/taosdemo/src/main/resources/application.properties
+++ b/tests/examples/JDBC/taosdemo/src/main/resources/application.properties
@@ -13,5 +13,5 @@ spring.datasource.password=taosdata
spring.datasource.hikari.maximum-pool-size=1
spring.datasource.hikari.minimum-idle=1
spring.datasource.hikari.max-lifetime=0
-logging.level.com.taosdata.taosdemo.mapper=error
+logging.level.com.taosdata.taosdemo.dao=error
server.port=8888
\ No newline at end of file
diff --git a/tests/examples/JDBC/taosdemo/src/main/resources/templates/index.html b/tests/examples/JDBC/taosdemo/src/main/resources/templates/index.html
index 69f8851c9b..953a058032 100644
--- a/tests/examples/JDBC/taosdemo/src/main/resources/templates/index.html
+++ b/tests/examples/JDBC/taosdemo/src/main/resources/templates/index.html
@@ -5,6 +5,6 @@
Index
-Hello~~~
+Developing~~~