update jdbc test cases
This commit is contained in:
parent
9166f264d5
commit
aa2ab56de0
|
@ -93,14 +93,13 @@
|
||||||
<version>3.6.1</version>
|
<version>3.6.1</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<encoding>UTF-8</encoding>
|
<encoding>UTF-8</encoding>
|
||||||
<source>11</source>
|
<source>8</source>
|
||||||
<target>11</target>
|
<target>8</target>
|
||||||
<debug>true</debug>
|
<debug>true</debug>
|
||||||
<showDeprecation>true</showDeprecation>
|
<showDeprecation>true</showDeprecation>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-source-plugin</artifactId>
|
<artifactId>maven-source-plugin</artifactId>
|
||||||
|
|
|
@ -23,6 +23,7 @@ import java.sql.SQLException;
|
||||||
public class SqlSyntaxValidator {
|
public class SqlSyntaxValidator {
|
||||||
|
|
||||||
private TSDBConnection tsdbConnection;
|
private TSDBConnection tsdbConnection;
|
||||||
|
|
||||||
public SqlSyntaxValidator(Connection connection) {
|
public SqlSyntaxValidator(Connection connection) {
|
||||||
this.tsdbConnection = (TSDBConnection) connection;
|
this.tsdbConnection = (TSDBConnection) connection;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,8 +8,7 @@ import org.junit.BeforeClass;
|
||||||
public class BaseTest {
|
public class BaseTest {
|
||||||
|
|
||||||
private static boolean testCluster = false;
|
private static boolean testCluster = false;
|
||||||
private static TDNodes nodes = new TDNodes();
|
private static TDNodes nodes = new TDNodes();
|
||||||
|
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void setupEnv() {
|
public static void setupEnv() {
|
||||||
|
@ -19,11 +18,9 @@ public class BaseTest {
|
||||||
nodes.getTDNode(1).setRunning(1);
|
nodes.getTDNode(1).setRunning(1);
|
||||||
nodes.stop(1);
|
nodes.stop(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
nodes.setTestCluster(testCluster);
|
nodes.setTestCluster(testCluster);
|
||||||
nodes.deploy(1);
|
nodes.deploy(1);
|
||||||
nodes.start(1);
|
nodes.start(1);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,13 +7,11 @@ import org.junit.Test;
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import java.util.Properties;
|
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
import java.util.concurrent.*;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
|
|
||||||
public class BatchInsertTest extends BaseTest {
|
public class BatchInsertTest extends BaseTest {
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,6 @@ public class SelectTest extends BaseTest {
|
||||||
statement.executeUpdate("drop database if exists " + dbName);
|
statement.executeUpdate("drop database if exists " + dbName);
|
||||||
statement.executeUpdate("create database if not exists " + dbName);
|
statement.executeUpdate("create database if not exists " + dbName);
|
||||||
statement.executeUpdate("create table if not exists " + dbName + "." + tName + " (ts timestamp, k int, v int)");
|
statement.executeUpdate("create table if not exists " + dbName + "." + tName + " (ts timestamp, k int, v int)");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -66,6 +65,5 @@ public class SelectTest extends BaseTest {
|
||||||
statement.close();
|
statement.close();
|
||||||
connection.close();
|
connection.close();
|
||||||
Thread.sleep(10);
|
Thread.sleep(10);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,108 @@
|
||||||
|
package com.taosdata.jdbc.cases;
|
||||||
|
|
||||||
|
import com.taosdata.jdbc.lib.TSDBCommon;
|
||||||
|
import org.junit.After;
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.Random;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
public class BatchInsertTest {
|
||||||
|
|
||||||
|
static String host = "localhost";
|
||||||
|
static String dbName = "test";
|
||||||
|
static String stbName = "meters";
|
||||||
|
static int numOfTables = 30;
|
||||||
|
final static int numOfRecordsPerTable = 1000;
|
||||||
|
static long ts = 1496732686000l;
|
||||||
|
final static String tablePrefix = "t";
|
||||||
|
|
||||||
|
private Connection connection;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void before() {
|
||||||
|
try {
|
||||||
|
connection = TSDBCommon.getConn(host);
|
||||||
|
TSDBCommon.createDatabase(connection, dbName);
|
||||||
|
TSDBCommon.createStable(connection, stbName);
|
||||||
|
TSDBCommon.createTables(connection, numOfTables, stbName, tablePrefix);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBatchInsert(){
|
||||||
|
ExecutorService executorService = Executors.newFixedThreadPool(numOfTables);
|
||||||
|
for (int i = 0; i < numOfTables; i++) {
|
||||||
|
final int index = i;
|
||||||
|
executorService.execute(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
long startTime = System.currentTimeMillis();
|
||||||
|
Statement statement = connection.createStatement(); // get statement
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append("INSERT INTO " + tablePrefix + index + " VALUES");
|
||||||
|
Random rand = new Random();
|
||||||
|
for (int j = 1; j <= numOfRecordsPerTable; j++) {
|
||||||
|
sb.append("(" + (ts + j) + ", ");
|
||||||
|
sb.append(rand.nextInt(100) + ", ");
|
||||||
|
sb.append(rand.nextInt(100) + ", ");
|
||||||
|
sb.append(rand.nextInt(100) + ")");
|
||||||
|
}
|
||||||
|
statement.addBatch(sb.toString());
|
||||||
|
statement.executeBatch();
|
||||||
|
long endTime = System.currentTimeMillis();
|
||||||
|
System.out.println("Thread " + index + " takes " + (endTime - startTime) + " microseconds");
|
||||||
|
connection.commit();
|
||||||
|
statement.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
executorService.shutdown();
|
||||||
|
try {
|
||||||
|
executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
try{
|
||||||
|
Statement statement = connection.createStatement();
|
||||||
|
ResultSet rs = statement.executeQuery("select * from meters");
|
||||||
|
int num = 0;
|
||||||
|
while (rs.next()) {
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
assertEquals(num, numOfTables * numOfRecordsPerTable);
|
||||||
|
rs.close();
|
||||||
|
}catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
public void after() {
|
||||||
|
try {
|
||||||
|
if (connection != null)
|
||||||
|
connection.close();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
package com.taosdata.jdbc.lib;
|
||||||
|
|
||||||
|
import com.taosdata.jdbc.TSDBDriver;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DriverManager;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
public class TSDBCommon {
|
||||||
|
|
||||||
|
public static Connection getConn(String host) throws SQLException, ClassNotFoundException {
|
||||||
|
Class.forName("com.taosdata.jdbc.TSDBDriver");
|
||||||
|
Properties properties = new Properties();
|
||||||
|
properties.setProperty(TSDBDriver.PROPERTY_KEY_HOST, host);
|
||||||
|
properties.setProperty(TSDBDriver.PROPERTY_KEY_CHARSET, "UTF-8");
|
||||||
|
properties.setProperty(TSDBDriver.PROPERTY_KEY_LOCALE, "en_US.UTF-8");
|
||||||
|
properties.setProperty(TSDBDriver.PROPERTY_KEY_TIME_ZONE, "UTC-8");
|
||||||
|
return DriverManager.getConnection("jdbc:TAOS://" + host + ":0/", properties);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void createDatabase(Connection connection, String dbName) throws SQLException {
|
||||||
|
Statement statement = connection.createStatement();
|
||||||
|
statement.executeUpdate("drop database if exists " + dbName);
|
||||||
|
statement.executeUpdate("create database if not exists " + dbName);
|
||||||
|
statement.executeUpdate("use " + dbName);
|
||||||
|
statement.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void createStable(Connection connection, String stbName) throws SQLException {
|
||||||
|
Statement statement = connection.createStatement();
|
||||||
|
String createTableSql = "create table " + stbName + "(ts timestamp, f1 int, f2 int, f3 int) tags(areaid int, loc binary(20))";
|
||||||
|
statement.executeUpdate(createTableSql);
|
||||||
|
statement.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void createTables(Connection connection, int numOfTables, String stbName,String tablePrefix) throws SQLException {
|
||||||
|
Statement statement = connection.createStatement();
|
||||||
|
for(int i = 0; i < numOfTables; i++) {
|
||||||
|
String loc = i % 2 == 0 ? "beijing" : "shanghai";
|
||||||
|
String createSubTalbesSql = "create table " + tablePrefix + i + " using " + stbName + " tags(" + i + ", '" + loc + "')";
|
||||||
|
statement.executeUpdate(createSubTalbesSql);
|
||||||
|
}
|
||||||
|
statement.close();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue