commit
20d0279971
|
@ -32,7 +32,7 @@ ELSEIF (TD_WINDOWS)
|
|||
#INSTALL(TARGETS taos RUNTIME DESTINATION driver)
|
||||
#INSTALL(TARGETS shell RUNTIME DESTINATION .)
|
||||
IF (TD_MVN_INSTALLED)
|
||||
INSTALL(FILES ${LIBRARY_OUTPUT_PATH}/taos-jdbcdriver-2.0.15-dist.jar DESTINATION connector/jdbc)
|
||||
INSTALL(FILES ${LIBRARY_OUTPUT_PATH}/taos-jdbcdriver-2.0.16-dist.jar DESTINATION connector/jdbc)
|
||||
ENDIF ()
|
||||
ELSEIF (TD_DARWIN)
|
||||
SET(TD_MAKE_INSTALL_SH "${TD_COMMUNITY_DIR}/packaging/tools/make_install.sh")
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" output="target/classes" path="src/main/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="test" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
|
@ -1,23 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>taos-jdbcdriver</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.m2e.core.maven2Builder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
|
@ -8,7 +8,7 @@ IF (TD_MVN_INSTALLED)
|
|||
ADD_CUSTOM_COMMAND(OUTPUT ${JDBC_CMD_NAME}
|
||||
POST_BUILD
|
||||
COMMAND mvn -Dmaven.test.skip=true install -f ${CMAKE_CURRENT_SOURCE_DIR}/pom.xml
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/target/taos-jdbcdriver-2.0.15-dist.jar ${LIBRARY_OUTPUT_PATH}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/target/taos-jdbcdriver-2.0.16-dist.jar ${LIBRARY_OUTPUT_PATH}
|
||||
COMMAND mvn -Dmaven.test.skip=true clean -f ${CMAKE_CURRENT_SOURCE_DIR}/pom.xml
|
||||
COMMENT "build jdbc driver")
|
||||
ADD_CUSTOM_TARGET(${JDBC_TARGET_NAME} ALL WORKING_DIRECTORY ${EXECUTABLE_OUTPUT_PATH} DEPENDS ${JDBC_CMD_NAME})
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
<groupId>com.taosdata.jdbc</groupId>
|
||||
<artifactId>taos-jdbcdriver</artifactId>
|
||||
<version>2.0.15</version>
|
||||
<version>2.0.16</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>JDBCDriver</name>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.taosdata.jdbc</groupId>
|
||||
<artifactId>taos-jdbcdriver</artifactId>
|
||||
<version>2.0.15</version>
|
||||
<version>2.0.16</version>
|
||||
<packaging>jar</packaging>
|
||||
<name>JDBCDriver</name>
|
||||
<url>https://github.com/taosdata/TDengine/tree/master/src/connector/jdbc</url>
|
||||
|
@ -49,6 +49,7 @@
|
|||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
|
@ -56,12 +57,6 @@
|
|||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>5.1.47</version>
|
||||
</dependency>
|
||||
|
||||
<!-- for restful -->
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
|
@ -79,12 +74,6 @@
|
|||
<version>1.2.58</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>5.1.49</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
|
|
@ -497,12 +497,12 @@ public abstract class AbstractDatabaseMetaData implements DatabaseMetaData {
|
|||
|
||||
public ResultSet getProcedures(String catalog, String schemaPattern, String procedureNamePattern)
|
||||
throws SQLException {
|
||||
throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG);
|
||||
return null;
|
||||
}
|
||||
|
||||
public ResultSet getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern,
|
||||
String columnNamePattern) throws SQLException {
|
||||
throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG);
|
||||
return null;
|
||||
}
|
||||
|
||||
public abstract ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types)
|
||||
|
|
|
@ -20,13 +20,11 @@ import java.util.List;
|
|||
|
||||
public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
||||
|
||||
private String dbProductName = null;
|
||||
private String url = null;
|
||||
private String userName = null;
|
||||
private Connection conn = null;
|
||||
private String url;
|
||||
private String userName;
|
||||
private Connection conn;
|
||||
|
||||
public TSDBDatabaseMetaData(String dbProductName, String url, String userName) {
|
||||
this.dbProductName = dbProductName;
|
||||
public TSDBDatabaseMetaData(String url, String userName) {
|
||||
this.url = url;
|
||||
this.userName = userName;
|
||||
}
|
||||
|
@ -35,12 +33,17 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
this.conn = conn;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T unwrap(Class<T> iface) throws SQLException {
|
||||
return null;
|
||||
try {
|
||||
return iface.cast(this);
|
||||
} catch (ClassCastException cce) {
|
||||
throw new SQLException("Unable to unwrap to " + iface.toString());
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isWrapperFor(Class<?> iface) throws SQLException {
|
||||
return false;
|
||||
return iface.isInstance(this);
|
||||
}
|
||||
|
||||
public boolean allProceduresAreCallable() throws SQLException {
|
||||
|
@ -80,11 +83,11 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
}
|
||||
|
||||
public String getDatabaseProductName() throws SQLException {
|
||||
return this.dbProductName;
|
||||
return "TDengine";
|
||||
}
|
||||
|
||||
public String getDatabaseProductVersion() throws SQLException {
|
||||
return "1.5.1";
|
||||
return "2.0.x.x";
|
||||
}
|
||||
|
||||
public String getDriverName() throws SQLException {
|
||||
|
@ -92,7 +95,7 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
}
|
||||
|
||||
public String getDriverVersion() throws SQLException {
|
||||
return "1.0.0";
|
||||
return "2.0.x";
|
||||
}
|
||||
|
||||
public int getDriverMajorVersion() {
|
||||
|
@ -111,7 +114,9 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
return false;
|
||||
}
|
||||
|
||||
|
||||
public boolean supportsMixedCaseIdentifiers() throws SQLException {
|
||||
//像database、table这些对象的标识符,在存储时是否采用大小写混合的模式
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -120,7 +125,7 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
}
|
||||
|
||||
public boolean storesLowerCaseIdentifiers() throws SQLException {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean storesMixedCaseIdentifiers() throws SQLException {
|
||||
|
@ -128,6 +133,7 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
}
|
||||
|
||||
public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException {
|
||||
//像database、table这些对象的标识符,在存储时是否采用大小写混合、并带引号的模式
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -188,10 +194,12 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
}
|
||||
|
||||
public boolean nullPlusNonNullIsNull() throws SQLException {
|
||||
// null + non-null != null
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean supportsConvert() throws SQLException {
|
||||
// 是否支持转换函数convert
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -216,7 +224,7 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
}
|
||||
|
||||
public boolean supportsGroupBy() throws SQLException {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean supportsGroupByUnrelated() throws SQLException {
|
||||
|
@ -488,7 +496,7 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
}
|
||||
|
||||
public int getDefaultTransactionIsolation() throws SQLException {
|
||||
return 0;
|
||||
return Connection.TRANSACTION_NONE;
|
||||
}
|
||||
|
||||
public boolean supportsTransactions() throws SQLException {
|
||||
|
@ -496,6 +504,8 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
}
|
||||
|
||||
public boolean supportsTransactionIsolationLevel(int level) throws SQLException {
|
||||
if (level == Connection.TRANSACTION_NONE)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -517,28 +527,27 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
|
||||
public ResultSet getProcedures(String catalog, String schemaPattern, String procedureNamePattern)
|
||||
throws SQLException {
|
||||
throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG);
|
||||
return null;
|
||||
}
|
||||
|
||||
public ResultSet getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern,
|
||||
String columnNamePattern) throws SQLException {
|
||||
throw new SQLException(TSDBConstants.UNSUPPORT_METHOD_EXCEPTIONZ_MSG);
|
||||
return null;
|
||||
}
|
||||
|
||||
public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types)
|
||||
throws SQLException {
|
||||
Statement stmt = null;
|
||||
if (null != conn && !conn.isClosed()) {
|
||||
stmt = conn.createStatement();
|
||||
if (catalog == null || catalog.length() < 1) {
|
||||
catalog = conn.getCatalog();
|
||||
public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) throws SQLException {
|
||||
if (conn == null || conn.isClosed()) {
|
||||
throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_CONNECTION_NULL));
|
||||
}
|
||||
|
||||
try (Statement stmt = conn.createStatement()) {
|
||||
if (catalog == null || catalog.isEmpty())
|
||||
return null;
|
||||
|
||||
stmt.executeUpdate("use " + catalog);
|
||||
ResultSet resultSet0 = stmt.executeQuery("show tables");
|
||||
GetTablesResultSet getTablesResultSet = new GetTablesResultSet(resultSet0, catalog, schemaPattern, tableNamePattern, types);
|
||||
return getTablesResultSet;
|
||||
} else {
|
||||
throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_CONNECTION_NULL));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -547,14 +556,12 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
}
|
||||
|
||||
public ResultSet getCatalogs() throws SQLException {
|
||||
if (conn == null || conn.isClosed())
|
||||
throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_CONNECTION_NULL));
|
||||
|
||||
if (conn != null && !conn.isClosed()) {
|
||||
Statement stmt = conn.createStatement();
|
||||
ResultSet resultSet0 = stmt.executeQuery("show databases");
|
||||
CatalogResultSet resultSet = new CatalogResultSet(resultSet0);
|
||||
return resultSet;
|
||||
} else {
|
||||
return getEmptyResultSet();
|
||||
try (Statement stmt = conn.createStatement()) {
|
||||
ResultSet rs = stmt.executeQuery("show databases");
|
||||
return new CatalogResultSet(rs);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -562,7 +569,7 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
DatabaseMetaDataResultSet resultSet = new DatabaseMetaDataResultSet();
|
||||
|
||||
// set up ColumnMetaDataList
|
||||
List<ColumnMetaData> columnMetaDataList = new ArrayList<ColumnMetaData>(1);
|
||||
List<ColumnMetaData> columnMetaDataList = new ArrayList<>(1);
|
||||
ColumnMetaData colMetaData = new ColumnMetaData();
|
||||
colMetaData.setColIndex(0);
|
||||
colMetaData.setColName("TABLE_TYPE");
|
||||
|
@ -571,7 +578,7 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
columnMetaDataList.add(colMetaData);
|
||||
|
||||
// set up rowDataList
|
||||
List<TSDBResultSetRowData> rowDataList = new ArrayList<TSDBResultSetRowData>(2);
|
||||
List<TSDBResultSetRowData> rowDataList = new ArrayList<>(2);
|
||||
TSDBResultSetRowData rowData = new TSDBResultSetRowData();
|
||||
rowData.setString(0, "TABLE");
|
||||
rowDataList.add(rowData);
|
||||
|
@ -591,11 +598,10 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
Statement stmt = null;
|
||||
if (null != conn && !conn.isClosed()) {
|
||||
stmt = conn.createStatement();
|
||||
if (catalog == null || catalog.length() < 1) {
|
||||
catalog = conn.getCatalog();
|
||||
}
|
||||
stmt.executeUpdate("use " + catalog);
|
||||
if (catalog == null || catalog.isEmpty())
|
||||
return null;
|
||||
|
||||
stmt.executeUpdate("use " + catalog);
|
||||
DatabaseMetaDataResultSet resultSet = new DatabaseMetaDataResultSet();
|
||||
// set up ColumnMetaDataList
|
||||
List<ColumnMetaData> columnMetaDataList = new ArrayList<>(24);
|
||||
|
@ -851,7 +857,7 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
}
|
||||
|
||||
public Connection getConnection() throws SQLException {
|
||||
return null;
|
||||
return this.conn;
|
||||
}
|
||||
|
||||
public boolean supportsSavepoints() throws SQLException {
|
||||
|
@ -884,15 +890,17 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
}
|
||||
|
||||
public boolean supportsResultSetHoldability(int holdability) throws SQLException {
|
||||
if (holdability == ResultSet.HOLD_CURSORS_OVER_COMMIT)
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getResultSetHoldability() throws SQLException {
|
||||
return 0;
|
||||
return ResultSet.HOLD_CURSORS_OVER_COMMIT;
|
||||
}
|
||||
|
||||
public int getDatabaseMajorVersion() throws SQLException {
|
||||
return 0;
|
||||
return 2;
|
||||
}
|
||||
|
||||
public int getDatabaseMinorVersion() throws SQLException {
|
||||
|
@ -900,7 +908,7 @@ public class TSDBDatabaseMetaData implements java.sql.DatabaseMetaData {
|
|||
}
|
||||
|
||||
public int getJDBCMajorVersion() throws SQLException {
|
||||
return 0;
|
||||
return 2;
|
||||
}
|
||||
|
||||
public int getJDBCMinorVersion() throws SQLException {
|
||||
|
|
|
@ -214,7 +214,7 @@ public class TSDBDriver extends AbstractTaosDriver {
|
|||
urlProps.setProperty(TSDBDriver.PROPERTY_KEY_HOST, url);
|
||||
}
|
||||
|
||||
this.dbMetaData = new TSDBDatabaseMetaData(dbProductName, urlForMeta, urlProps.getProperty(TSDBDriver.PROPERTY_KEY_USER));
|
||||
this.dbMetaData = new TSDBDatabaseMetaData(urlForMeta, urlProps.getProperty(TSDBDriver.PROPERTY_KEY_USER));
|
||||
return urlProps;
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,6 @@ import java.util.Iterator;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class TSDBResultSet implements ResultSet {
|
||||
private TSDBJNIConnector jniConnector = null;
|
||||
|
||||
|
@ -104,6 +103,7 @@ public class TSDBResultSet implements ResultSet {
|
|||
}
|
||||
|
||||
public TSDBResultSet() {
|
||||
|
||||
}
|
||||
|
||||
public TSDBResultSet(TSDBJNIConnector connector, long resultSetPointer) throws SQLException {
|
||||
|
|
|
@ -17,6 +17,7 @@ package com.taosdata.jdbc;
|
|||
import java.sql.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class TSDBStatement implements Statement {
|
||||
private TSDBJNIConnector connector = null;
|
||||
|
@ -68,7 +69,6 @@ public class TSDBStatement implements Statement {
|
|||
pSql = this.connector.executeQuery(sql);
|
||||
|
||||
long resultSetPointer = this.connector.getResultSet();
|
||||
|
||||
if (resultSetPointer == TSDBConstants.JNI_CONNECTION_NULL) {
|
||||
this.connector.freeResultSet(pSql);
|
||||
throw new SQLException(TSDBConstants.FixErrMsg(TSDBConstants.JNI_CONNECTION_NULL));
|
||||
|
|
|
@ -8,7 +8,6 @@ import java.util.List;
|
|||
|
||||
public class RestfulDatabaseMetaData extends AbstractDatabaseMetaData {
|
||||
|
||||
|
||||
private final String url;
|
||||
private final String userName;
|
||||
private final Connection connection;
|
||||
|
|
|
@ -1,245 +0,0 @@
|
|||
package com.taosdata.jdbc;
|
||||
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.sql.*;
|
||||
import java.util.Properties;
|
||||
|
||||
public class DatabaseMetaDataTest {
|
||||
static Connection connection = null;
|
||||
static PreparedStatement statement = null;
|
||||
static String dbName = "test";
|
||||
static String tName = "t0";
|
||||
static String host = "localhost";
|
||||
|
||||
@BeforeClass
|
||||
public static void createConnection() throws SQLException {
|
||||
try {
|
||||
Class.forName("com.taosdata.jdbc.TSDBDriver");
|
||||
} catch (ClassNotFoundException e) {
|
||||
return;
|
||||
}
|
||||
Properties properties = new Properties();
|
||||
properties.setProperty(TSDBDriver.PROPERTY_KEY_HOST, host);
|
||||
properties.setProperty(TSDBDriver.PROPERTY_KEY_USER, "root");
|
||||
properties.setProperty(TSDBDriver.PROPERTY_KEY_PASSWORD, "taosdata");
|
||||
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");
|
||||
connection = DriverManager.getConnection("jdbc:TAOS://" + host + ":0/", properties);
|
||||
|
||||
String sql = "drop database if exists " + dbName;
|
||||
statement = connection.prepareStatement(sql);
|
||||
statement.executeUpdate("create database if not exists " + dbName);
|
||||
statement.executeUpdate("create table if not exists " + dbName + "." + tName + " (ts timestamp, k int, v int)");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMetaDataTest() throws SQLException {
|
||||
DatabaseMetaData databaseMetaData = connection.getMetaData();
|
||||
ResultSet resultSet = databaseMetaData.getTables(dbName, "t*", "t*", new String[]{"t"});
|
||||
while (resultSet.next()) {
|
||||
for (int i = 1; i <= resultSet.getMetaData().getColumnCount(); i++) {
|
||||
System.out.printf("%d: %s\n", i, resultSet.getString(i));
|
||||
}
|
||||
}
|
||||
resultSet.close();
|
||||
databaseMetaData.isWrapperFor(null);
|
||||
databaseMetaData.allProceduresAreCallable();
|
||||
databaseMetaData.allTablesAreSelectable();
|
||||
databaseMetaData.getURL();
|
||||
databaseMetaData.getUserName();
|
||||
databaseMetaData.isReadOnly();
|
||||
databaseMetaData.nullsAreSortedHigh();
|
||||
databaseMetaData.nullsAreSortedLow();
|
||||
databaseMetaData.nullsAreSortedAtStart();
|
||||
databaseMetaData.nullsAreSortedAtEnd();
|
||||
databaseMetaData.getDatabaseProductName();
|
||||
databaseMetaData.getDatabaseProductVersion();
|
||||
databaseMetaData.getDriverName();
|
||||
databaseMetaData.getDriverVersion();
|
||||
databaseMetaData.getDriverMajorVersion();
|
||||
databaseMetaData.getDriverMinorVersion();
|
||||
databaseMetaData.usesLocalFiles();
|
||||
databaseMetaData.usesLocalFilePerTable();
|
||||
databaseMetaData.supportsMixedCaseIdentifiers();
|
||||
databaseMetaData.storesUpperCaseIdentifiers();
|
||||
databaseMetaData.storesLowerCaseIdentifiers();
|
||||
databaseMetaData.storesMixedCaseIdentifiers();
|
||||
databaseMetaData.supportsMixedCaseQuotedIdentifiers();
|
||||
databaseMetaData.storesUpperCaseQuotedIdentifiers();
|
||||
databaseMetaData.storesLowerCaseQuotedIdentifiers();
|
||||
databaseMetaData.storesMixedCaseQuotedIdentifiers();
|
||||
databaseMetaData.getIdentifierQuoteString();
|
||||
databaseMetaData.getSQLKeywords();
|
||||
databaseMetaData.getNumericFunctions();
|
||||
databaseMetaData.getStringFunctions();
|
||||
databaseMetaData.getSystemFunctions();
|
||||
databaseMetaData.getTimeDateFunctions();
|
||||
databaseMetaData.getSearchStringEscape();
|
||||
databaseMetaData.getExtraNameCharacters();
|
||||
databaseMetaData.supportsAlterTableWithAddColumn();
|
||||
databaseMetaData.supportsAlterTableWithDropColumn();
|
||||
databaseMetaData.supportsColumnAliasing();
|
||||
databaseMetaData.nullPlusNonNullIsNull();
|
||||
databaseMetaData.supportsConvert();
|
||||
databaseMetaData.supportsConvert(0, 0);
|
||||
databaseMetaData.supportsTableCorrelationNames();
|
||||
databaseMetaData.supportsDifferentTableCorrelationNames();
|
||||
databaseMetaData.supportsExpressionsInOrderBy();
|
||||
databaseMetaData.supportsOrderByUnrelated();
|
||||
databaseMetaData.supportsGroupBy();
|
||||
databaseMetaData.supportsGroupByUnrelated();
|
||||
databaseMetaData.supportsGroupByBeyondSelect();
|
||||
databaseMetaData.supportsLikeEscapeClause();
|
||||
databaseMetaData.supportsMultipleResultSets();
|
||||
databaseMetaData.supportsMultipleTransactions();
|
||||
databaseMetaData.supportsNonNullableColumns();
|
||||
databaseMetaData.supportsMinimumSQLGrammar();
|
||||
databaseMetaData.supportsCoreSQLGrammar();
|
||||
databaseMetaData.supportsExtendedSQLGrammar();
|
||||
databaseMetaData.supportsANSI92EntryLevelSQL();
|
||||
databaseMetaData.supportsANSI92IntermediateSQL();
|
||||
databaseMetaData.supportsANSI92FullSQL();
|
||||
databaseMetaData.supportsIntegrityEnhancementFacility();
|
||||
databaseMetaData.supportsOuterJoins();
|
||||
databaseMetaData.supportsFullOuterJoins();
|
||||
databaseMetaData.supportsLimitedOuterJoins();
|
||||
databaseMetaData.getSchemaTerm();
|
||||
databaseMetaData.getProcedureTerm();
|
||||
databaseMetaData.getCatalogTerm();
|
||||
databaseMetaData.isCatalogAtStart();
|
||||
databaseMetaData.getCatalogSeparator();
|
||||
databaseMetaData.supportsSchemasInDataManipulation();
|
||||
databaseMetaData.supportsSchemasInProcedureCalls();
|
||||
databaseMetaData.supportsSchemasInTableDefinitions();
|
||||
databaseMetaData.supportsSchemasInIndexDefinitions();
|
||||
databaseMetaData.supportsSchemasInPrivilegeDefinitions();
|
||||
databaseMetaData.supportsCatalogsInDataManipulation();
|
||||
databaseMetaData.supportsCatalogsInProcedureCalls();
|
||||
databaseMetaData.supportsCatalogsInTableDefinitions();
|
||||
databaseMetaData.supportsCatalogsInIndexDefinitions();
|
||||
databaseMetaData.supportsCatalogsInPrivilegeDefinitions();
|
||||
databaseMetaData.supportsPositionedDelete();
|
||||
databaseMetaData.supportsPositionedUpdate();
|
||||
databaseMetaData.supportsSelectForUpdate();
|
||||
databaseMetaData.supportsStoredProcedures();
|
||||
databaseMetaData.supportsSubqueriesInComparisons();
|
||||
databaseMetaData.supportsSubqueriesInExists();
|
||||
databaseMetaData.supportsSubqueriesInIns();
|
||||
databaseMetaData.supportsSubqueriesInQuantifieds();
|
||||
databaseMetaData.supportsCorrelatedSubqueries();
|
||||
databaseMetaData.supportsUnion();
|
||||
databaseMetaData.supportsUnionAll();
|
||||
databaseMetaData.supportsOpenCursorsAcrossCommit();
|
||||
databaseMetaData.supportsOpenCursorsAcrossRollback();
|
||||
databaseMetaData.supportsOpenStatementsAcrossCommit();
|
||||
databaseMetaData.supportsOpenStatementsAcrossRollback();
|
||||
databaseMetaData.getMaxBinaryLiteralLength();
|
||||
databaseMetaData.getMaxCharLiteralLength();
|
||||
databaseMetaData.getMaxColumnNameLength();
|
||||
databaseMetaData.getMaxColumnsInGroupBy();
|
||||
databaseMetaData.getMaxColumnsInIndex();
|
||||
databaseMetaData.getMaxColumnsInOrderBy();
|
||||
databaseMetaData.getMaxColumnsInSelect();
|
||||
databaseMetaData.getMaxColumnsInTable();
|
||||
databaseMetaData.getMaxConnections();
|
||||
databaseMetaData.getMaxCursorNameLength();
|
||||
databaseMetaData.getMaxIndexLength();
|
||||
databaseMetaData.getMaxSchemaNameLength();
|
||||
databaseMetaData.getMaxProcedureNameLength();
|
||||
databaseMetaData.getMaxCatalogNameLength();
|
||||
databaseMetaData.getMaxRowSize();
|
||||
databaseMetaData.doesMaxRowSizeIncludeBlobs();
|
||||
databaseMetaData.getMaxStatementLength();
|
||||
databaseMetaData.getMaxStatements();
|
||||
databaseMetaData.getMaxTableNameLength();
|
||||
databaseMetaData.getMaxTablesInSelect();
|
||||
databaseMetaData.getMaxUserNameLength();
|
||||
databaseMetaData.getDefaultTransactionIsolation();
|
||||
databaseMetaData.supportsTransactions();
|
||||
databaseMetaData.supportsTransactionIsolationLevel(0);
|
||||
databaseMetaData.supportsDataDefinitionAndDataManipulationTransactions();
|
||||
databaseMetaData.supportsDataManipulationTransactionsOnly();
|
||||
databaseMetaData.dataDefinitionCausesTransactionCommit();
|
||||
databaseMetaData.dataDefinitionIgnoredInTransactions();
|
||||
try {
|
||||
databaseMetaData.getProcedures("", "", "");
|
||||
} catch (Exception e) {
|
||||
}
|
||||
try {
|
||||
databaseMetaData.getProcedureColumns("", "", "", "");
|
||||
} catch (Exception e) {
|
||||
}
|
||||
try {
|
||||
databaseMetaData.getTables("", "", "", new String[]{""});
|
||||
} catch (Exception e) {
|
||||
}
|
||||
databaseMetaData.getSchemas();
|
||||
databaseMetaData.getCatalogs();
|
||||
// databaseMetaData.getTableTypes();
|
||||
|
||||
databaseMetaData.getColumns(dbName, "", tName, "");
|
||||
databaseMetaData.getColumnPrivileges("", "", "", "");
|
||||
databaseMetaData.getTablePrivileges("", "", "");
|
||||
databaseMetaData.getBestRowIdentifier("", "", "", 0, false);
|
||||
databaseMetaData.getVersionColumns("", "", "");
|
||||
databaseMetaData.getPrimaryKeys("", "", "");
|
||||
databaseMetaData.getImportedKeys("", "", "");
|
||||
databaseMetaData.getExportedKeys("", "", "");
|
||||
databaseMetaData.getCrossReference("", "", "", "", "", "");
|
||||
databaseMetaData.getTypeInfo();
|
||||
databaseMetaData.getIndexInfo("", "", "", false, false);
|
||||
databaseMetaData.supportsResultSetType(0);
|
||||
databaseMetaData.supportsResultSetConcurrency(0, 0);
|
||||
databaseMetaData.ownUpdatesAreVisible(0);
|
||||
databaseMetaData.ownDeletesAreVisible(0);
|
||||
databaseMetaData.ownInsertsAreVisible(0);
|
||||
databaseMetaData.othersUpdatesAreVisible(0);
|
||||
databaseMetaData.othersDeletesAreVisible(0);
|
||||
databaseMetaData.othersInsertsAreVisible(0);
|
||||
databaseMetaData.updatesAreDetected(0);
|
||||
databaseMetaData.deletesAreDetected(0);
|
||||
databaseMetaData.insertsAreDetected(0);
|
||||
databaseMetaData.supportsBatchUpdates();
|
||||
databaseMetaData.getUDTs("", "", "", new int[]{0});
|
||||
databaseMetaData.getConnection();
|
||||
databaseMetaData.supportsSavepoints();
|
||||
databaseMetaData.supportsNamedParameters();
|
||||
databaseMetaData.supportsMultipleOpenResults();
|
||||
databaseMetaData.supportsGetGeneratedKeys();
|
||||
databaseMetaData.getSuperTypes("", "", "");
|
||||
databaseMetaData.getSuperTables("", "", "");
|
||||
databaseMetaData.getAttributes("", "", "", "");
|
||||
databaseMetaData.supportsResultSetHoldability(0);
|
||||
databaseMetaData.getResultSetHoldability();
|
||||
databaseMetaData.getDatabaseMajorVersion();
|
||||
databaseMetaData.getDatabaseMinorVersion();
|
||||
databaseMetaData.getJDBCMajorVersion();
|
||||
databaseMetaData.getJDBCMinorVersion();
|
||||
databaseMetaData.getSQLStateType();
|
||||
databaseMetaData.locatorsUpdateCopy();
|
||||
databaseMetaData.supportsStatementPooling();
|
||||
databaseMetaData.getRowIdLifetime();
|
||||
databaseMetaData.getSchemas("", "");
|
||||
databaseMetaData.supportsStoredFunctionsUsingCallSyntax();
|
||||
databaseMetaData.autoCommitFailureClosesAllResultSets();
|
||||
databaseMetaData.getClientInfoProperties();
|
||||
databaseMetaData.getFunctions("", "", "");
|
||||
databaseMetaData.getFunctionColumns("", "", "", "");
|
||||
databaseMetaData.getPseudoColumns("", "", "", "");
|
||||
databaseMetaData.generatedKeyAlwaysReturned();
|
||||
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public static void close() throws Exception {
|
||||
statement.executeUpdate("drop database " + dbName);
|
||||
statement.close();
|
||||
connection.close();
|
||||
Thread.sleep(10);
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,913 @@
|
|||
package com.taosdata.jdbc;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Properties;
|
||||
|
||||
public class TSDBDatabaseMetaDataTest {
|
||||
private TSDBDatabaseMetaData metaData;
|
||||
private static final String host = "localhost";
|
||||
|
||||
@Before
|
||||
public void before() throws ClassNotFoundException, SQLException {
|
||||
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");
|
||||
metaData = (TSDBDatabaseMetaData) DriverManager.getConnection("jdbc:TAOS://" + host + ":6030/?user=root&password=taosdata", properties).getMetaData();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void unwrap() throws SQLException {
|
||||
TSDBDatabaseMetaData unwrap = metaData.unwrap(TSDBDatabaseMetaData.class);
|
||||
Assert.assertNotNull(unwrap);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isWrapperFor() throws SQLException {
|
||||
Assert.assertTrue(metaData.isWrapperFor(TSDBDatabaseMetaData.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void allProceduresAreCallable() throws SQLException {
|
||||
Assert.assertFalse(metaData.allProceduresAreCallable());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void allTablesAreSelectable() throws SQLException {
|
||||
Assert.assertFalse(metaData.allTablesAreSelectable());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getURL() throws SQLException {
|
||||
Assert.assertEquals("jdbc:TAOS://localhost:6030/?user=root&password=taosdata", metaData.getURL());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getUserName() throws SQLException {
|
||||
Assert.assertEquals("root", metaData.getUserName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isReadOnly() throws SQLException {
|
||||
Assert.assertFalse(metaData.isReadOnly());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void nullsAreSortedHigh() throws SQLException {
|
||||
Assert.assertFalse(metaData.nullsAreSortedHigh());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void nullsAreSortedLow() throws SQLException {
|
||||
Assert.assertTrue(metaData.nullsAreSortedLow());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void nullsAreSortedAtStart() throws SQLException {
|
||||
Assert.assertTrue(metaData.nullsAreSortedAtStart());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void nullsAreSortedAtEnd() throws SQLException {
|
||||
Assert.assertFalse(metaData.nullsAreSortedAtEnd());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDatabaseProductName() throws SQLException {
|
||||
Assert.assertEquals("TDengine", metaData.getDatabaseProductName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDatabaseProductVersion() throws SQLException {
|
||||
Assert.assertEquals("2.0.x.x", metaData.getDatabaseProductVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDriverName() throws SQLException {
|
||||
Assert.assertEquals("com.taosdata.jdbc.TSDBDriver", metaData.getDriverName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDriverVersion() throws SQLException {
|
||||
Assert.assertEquals("2.0.x", metaData.getDriverVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDriverMajorVersion() {
|
||||
Assert.assertEquals(2, metaData.getDriverMajorVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDriverMinorVersion() {
|
||||
Assert.assertEquals(0, metaData.getDriverMinorVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void usesLocalFiles() throws SQLException {
|
||||
Assert.assertFalse(metaData.usesLocalFiles());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void usesLocalFilePerTable() throws SQLException {
|
||||
Assert.assertFalse(metaData.usesLocalFilePerTable());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsMixedCaseIdentifiers() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsMixedCaseIdentifiers());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void storesUpperCaseIdentifiers() throws SQLException {
|
||||
Assert.assertFalse(metaData.storesUpperCaseIdentifiers());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void storesLowerCaseIdentifiers() throws SQLException {
|
||||
Assert.assertTrue(metaData.storesLowerCaseIdentifiers());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void storesMixedCaseIdentifiers() throws SQLException {
|
||||
Assert.assertFalse(metaData.storesMixedCaseIdentifiers());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsMixedCaseQuotedIdentifiers() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsMixedCaseQuotedIdentifiers());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void storesUpperCaseQuotedIdentifiers() throws SQLException {
|
||||
Assert.assertFalse(metaData.storesUpperCaseQuotedIdentifiers());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void storesLowerCaseQuotedIdentifiers() throws SQLException {
|
||||
Assert.assertFalse(metaData.storesLowerCaseQuotedIdentifiers());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void storesMixedCaseQuotedIdentifiers() throws SQLException {
|
||||
Assert.assertFalse(metaData.storesMixedCaseQuotedIdentifiers());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getIdentifierQuoteString() throws SQLException {
|
||||
Assert.assertEquals(" ", metaData.getIdentifierQuoteString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSQLKeywords() throws SQLException {
|
||||
Assert.assertEquals(null, metaData.getSQLKeywords());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getNumericFunctions() throws SQLException {
|
||||
Assert.assertEquals(null, metaData.getNumericFunctions());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getStringFunctions() throws SQLException {
|
||||
Assert.assertEquals(null, metaData.getStringFunctions());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSystemFunctions() throws SQLException {
|
||||
Assert.assertEquals(null, metaData.getSystemFunctions());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTimeDateFunctions() throws SQLException {
|
||||
Assert.assertEquals(null, metaData.getTimeDateFunctions());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSearchStringEscape() throws SQLException {
|
||||
Assert.assertEquals(null, metaData.getSearchStringEscape());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getExtraNameCharacters() throws SQLException {
|
||||
Assert.assertEquals(null, metaData.getExtraNameCharacters());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsAlterTableWithAddColumn() throws SQLException {
|
||||
Assert.assertTrue(metaData.supportsAlterTableWithAddColumn());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsAlterTableWithDropColumn() throws SQLException {
|
||||
Assert.assertTrue(metaData.supportsAlterTableWithDropColumn());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsColumnAliasing() throws SQLException {
|
||||
Assert.assertTrue(metaData.supportsColumnAliasing());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void nullPlusNonNullIsNull() throws SQLException {
|
||||
Assert.assertFalse(metaData.nullPlusNonNullIsNull());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsConvert() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsConvert());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSupportsConvert() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsConvert(1, 1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsTableCorrelationNames() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsTableCorrelationNames());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsDifferentTableCorrelationNames() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsDifferentTableCorrelationNames());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsExpressionsInOrderBy() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsExpressionsInOrderBy());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsOrderByUnrelated() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsOrderByUnrelated());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsGroupBy() throws SQLException {
|
||||
Assert.assertTrue(metaData.supportsGroupBy());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsGroupByUnrelated() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsGroupByUnrelated());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsGroupByBeyondSelect() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsGroupByBeyondSelect());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsLikeEscapeClause() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsLikeEscapeClause());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsMultipleResultSets() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsMultipleResultSets());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsMultipleTransactions() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsMultipleTransactions());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsNonNullableColumns() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsNonNullableColumns());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsMinimumSQLGrammar() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsMinimumSQLGrammar());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsCoreSQLGrammar() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsCoreSQLGrammar());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsExtendedSQLGrammar() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsExtendedSQLGrammar());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsANSI92EntryLevelSQL() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsANSI92EntryLevelSQL());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsANSI92IntermediateSQL() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsANSI92IntermediateSQL());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsANSI92FullSQL() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsANSI92FullSQL());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsIntegrityEnhancementFacility() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsIntegrityEnhancementFacility());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsOuterJoins() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsOuterJoins());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsFullOuterJoins() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsFullOuterJoins());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsLimitedOuterJoins() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsLimitedOuterJoins());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSchemaTerm() throws SQLException {
|
||||
Assert.assertNull(metaData.getSchemaTerm());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getProcedureTerm() throws SQLException {
|
||||
Assert.assertNull(metaData.getProcedureTerm());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getCatalogTerm() throws SQLException {
|
||||
Assert.assertEquals("database", metaData.getCatalogTerm());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isCatalogAtStart() throws SQLException {
|
||||
Assert.assertTrue(metaData.isCatalogAtStart());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getCatalogSeparator() throws SQLException {
|
||||
Assert.assertEquals(".", metaData.getCatalogSeparator());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsSchemasInDataManipulation() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsSchemasInDataManipulation());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsSchemasInProcedureCalls() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsSchemasInProcedureCalls());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsSchemasInTableDefinitions() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsSchemasInTableDefinitions());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsSchemasInIndexDefinitions() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsSchemasInIndexDefinitions());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsSchemasInPrivilegeDefinitions() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsSchemasInPrivilegeDefinitions());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsCatalogsInDataManipulation() throws SQLException {
|
||||
Assert.assertTrue(metaData.supportsCatalogsInDataManipulation());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsCatalogsInProcedureCalls() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsCatalogsInProcedureCalls());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsCatalogsInTableDefinitions() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsCatalogsInTableDefinitions());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsCatalogsInIndexDefinitions() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsCatalogsInIndexDefinitions());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsCatalogsInPrivilegeDefinitions() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsCatalogsInPrivilegeDefinitions());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsPositionedDelete() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsPositionedDelete());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsPositionedUpdate() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsPositionedUpdate());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsSelectForUpdate() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsSelectForUpdate());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsStoredProcedures() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsStoredProcedures());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsSubqueriesInComparisons() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsSubqueriesInComparisons());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsSubqueriesInExists() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsSubqueriesInExists());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsSubqueriesInIns() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsSubqueriesInIns());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsSubqueriesInQuantifieds() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsSubqueriesInQuantifieds());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsCorrelatedSubqueries() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsCorrelatedSubqueries());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsUnion() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsUnion());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsUnionAll() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsUnionAll());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsOpenCursorsAcrossCommit() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsOpenCursorsAcrossCommit());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsOpenCursorsAcrossRollback() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsOpenCursorsAcrossRollback());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsOpenStatementsAcrossCommit() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsOpenStatementsAcrossCommit());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsOpenStatementsAcrossRollback() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsOpenStatementsAcrossRollback());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxBinaryLiteralLength() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxBinaryLiteralLength());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxCharLiteralLength() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxCharLiteralLength());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxColumnNameLength() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxColumnNameLength());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxColumnsInGroupBy() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxColumnsInGroupBy());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxColumnsInIndex() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxColumnsInIndex());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxColumnsInOrderBy() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxColumnsInOrderBy());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxColumnsInSelect() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxColumnsInSelect());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxColumnsInTable() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxColumnsInTable());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxConnections() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxConnections());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxCursorNameLength() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxCursorNameLength());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxIndexLength() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxIndexLength());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxSchemaNameLength() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxSchemaNameLength());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxProcedureNameLength() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxProcedureNameLength());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxCatalogNameLength() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxCatalogNameLength());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxRowSize() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxRowSize());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void doesMaxRowSizeIncludeBlobs() throws SQLException {
|
||||
Assert.assertFalse(metaData.doesMaxRowSizeIncludeBlobs());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxStatementLength() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxStatementLength());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxStatements() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxStatements());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxTableNameLength() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxTableNameLength());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxTablesInSelect() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxTablesInSelect());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getMaxUserNameLength() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getMaxUserNameLength());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDefaultTransactionIsolation() throws SQLException {
|
||||
Assert.assertEquals(Connection.TRANSACTION_NONE, metaData.getDefaultTransactionIsolation());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsTransactions() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsTransactions());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsTransactionIsolationLevel() throws SQLException {
|
||||
Assert.assertTrue(metaData.supportsTransactionIsolationLevel(Connection.TRANSACTION_NONE));
|
||||
Assert.assertFalse(metaData.supportsTransactionIsolationLevel(Connection.TRANSACTION_READ_COMMITTED));
|
||||
Assert.assertFalse(metaData.supportsTransactionIsolationLevel(Connection.TRANSACTION_READ_UNCOMMITTED));
|
||||
Assert.assertFalse(metaData.supportsTransactionIsolationLevel(Connection.TRANSACTION_REPEATABLE_READ));
|
||||
Assert.assertFalse(metaData.supportsTransactionIsolationLevel(Connection.TRANSACTION_SERIALIZABLE));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsDataDefinitionAndDataManipulationTransactions() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsDataDefinitionAndDataManipulationTransactions());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsDataManipulationTransactionsOnly() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsDataManipulationTransactionsOnly());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void dataDefinitionCausesTransactionCommit() throws SQLException {
|
||||
Assert.assertFalse(metaData.dataDefinitionCausesTransactionCommit());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void dataDefinitionIgnoredInTransactions() throws SQLException {
|
||||
Assert.assertFalse(metaData.dataDefinitionIgnoredInTransactions());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getProcedures() throws SQLException {
|
||||
Assert.assertNull(metaData.getProcedures("*", "*", "*"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getProcedureColumns() throws SQLException {
|
||||
Assert.assertNull(metaData.getProcedureColumns("*", "*", "*", "*"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTables() throws SQLException {
|
||||
Assert.assertNull(metaData.getTables("", "", "*", null));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSchemas() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getSchemas());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getCatalogs() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getCatalogs());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTableTypes() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getTableTypes());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getColumns() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getColumns("", "", "", ""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getColumnPrivileges() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getColumnPrivileges("", "", "", ""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTablePrivileges() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getTablePrivileges("", "", ""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getBestRowIdentifier() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getBestRowIdentifier("", "", "", 0, false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getVersionColumns() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getVersionColumns("", "", ""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPrimaryKeys() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getPrimaryKeys("", "", ""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getImportedKeys() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getImportedKeys("", "", ""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getExportedKeys() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getExportedKeys("", "", ""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getCrossReference() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getCrossReference("", "", "", "", "", ""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTypeInfo() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getTypeInfo());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getIndexInfo() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getIndexInfo("", "", "", false, false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsResultSetType() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsResultSetType(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsResultSetConcurrency() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsResultSetConcurrency(0, 0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ownUpdatesAreVisible() throws SQLException {
|
||||
Assert.assertFalse(metaData.ownUpdatesAreVisible(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ownDeletesAreVisible() throws SQLException {
|
||||
Assert.assertFalse(metaData.ownDeletesAreVisible(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ownInsertsAreVisible() throws SQLException {
|
||||
Assert.assertFalse(metaData.ownInsertsAreVisible(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void othersUpdatesAreVisible() throws SQLException {
|
||||
Assert.assertFalse(metaData.othersUpdatesAreVisible(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void othersDeletesAreVisible() throws SQLException {
|
||||
Assert.assertFalse(metaData.othersDeletesAreVisible(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void othersInsertsAreVisible() throws SQLException {
|
||||
Assert.assertFalse(metaData.othersInsertsAreVisible(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updatesAreDetected() throws SQLException {
|
||||
Assert.assertFalse(metaData.updatesAreDetected(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void deletesAreDetected() throws SQLException {
|
||||
Assert.assertFalse(metaData.deletesAreDetected(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void insertsAreDetected() throws SQLException {
|
||||
Assert.assertFalse(metaData.insertsAreDetected(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsBatchUpdates() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsBatchUpdates());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getUDTs() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getUDTs("", "", "", null));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getConnection() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getConnection());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsSavepoints() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsSavepoints());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsNamedParameters() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsNamedParameters());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsMultipleOpenResults() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsMultipleOpenResults());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsGetGeneratedKeys() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsGetGeneratedKeys());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSuperTypes() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getSuperTypes("", "", ""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSuperTables() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getSuperTables("", "", ""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAttributes() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getAttributes("", "", "", ""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsResultSetHoldability() throws SQLException {
|
||||
Assert.assertTrue(metaData.supportsResultSetHoldability(ResultSet.HOLD_CURSORS_OVER_COMMIT));
|
||||
Assert.assertFalse(metaData.supportsResultSetHoldability(ResultSet.CLOSE_CURSORS_AT_COMMIT));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getResultSetHoldability() throws SQLException {
|
||||
Assert.assertEquals(1, metaData.getResultSetHoldability());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDatabaseMajorVersion() throws SQLException {
|
||||
Assert.assertEquals(2, metaData.getDatabaseMajorVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDatabaseMinorVersion() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getDatabaseMinorVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getJDBCMajorVersion() throws SQLException {
|
||||
Assert.assertEquals(2, metaData.getJDBCMajorVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getJDBCMinorVersion() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getJDBCMinorVersion());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSQLStateType() throws SQLException {
|
||||
Assert.assertEquals(0, metaData.getSQLStateType());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void locatorsUpdateCopy() throws SQLException {
|
||||
Assert.assertFalse(metaData.locatorsUpdateCopy());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsStatementPooling() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsStatementPooling());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getRowIdLifetime() throws SQLException {
|
||||
Assert.assertNull(metaData.getRowIdLifetime());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetSchemas() throws SQLException {
|
||||
Assert.assertNull(metaData.getSchemas());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void supportsStoredFunctionsUsingCallSyntax() throws SQLException {
|
||||
Assert.assertFalse(metaData.supportsStoredFunctionsUsingCallSyntax());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void autoCommitFailureClosesAllResultSets() throws SQLException {
|
||||
Assert.assertFalse(metaData.autoCommitFailureClosesAllResultSets());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getClientInfoProperties() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getClientInfoProperties());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getFunctions() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getFunctions("", "", ""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getFunctionColumns() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getFunctionColumns("", "", "", ""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPseudoColumns() throws SQLException {
|
||||
Assert.assertNotNull(metaData.getPseudoColumns("", "", "", ""));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void generatedKeyAlwaysReturned() throws SQLException {
|
||||
Assert.assertFalse(metaData.generatedKeyAlwaysReturned());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,91 @@
|
|||
package com.taosdata.jdbc.cases;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.sql.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class MultiThreadsWithSameStatmentTest {
|
||||
|
||||
|
||||
private class Service {
|
||||
public Connection conn;
|
||||
public Statement stmt;
|
||||
|
||||
public Service() {
|
||||
try {
|
||||
Class.forName("com.taosdata.jdbc.TSDBDriver");
|
||||
conn = DriverManager.getConnection("jdbc:TAOS://localhost:6030/?user=root&password=taosdata");
|
||||
stmt = conn.createStatement();
|
||||
stmt.execute("create database if not exists jdbctest");
|
||||
stmt.executeUpdate("create table if not exists jdbctest.weather (ts timestamp, f1 int)");
|
||||
} catch (ClassNotFoundException | SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public void release() {
|
||||
try {
|
||||
stmt.close();
|
||||
conn.close();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Before
|
||||
public void before() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
Thread t1 = new Thread(() -> {
|
||||
try {
|
||||
Service service = new Service();
|
||||
ResultSet resultSet = service.stmt.executeQuery("select * from jdbctest.weather");
|
||||
while (resultSet.next()) {
|
||||
ResultSetMetaData metaData = resultSet.getMetaData();
|
||||
for (int i = 1; i <= metaData.getColumnCount(); i++) {
|
||||
System.out.print(metaData.getColumnLabel(i) + ": " + resultSet.getString(i));
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
resultSet.close();
|
||||
service.release();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
|
||||
Thread t2 = new Thread(() -> {
|
||||
while (true) {
|
||||
try {
|
||||
Service service = new Service();
|
||||
service.stmt.executeUpdate("insert into jdbctest.weather values(now,1)");
|
||||
service.release();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
t1.start();
|
||||
sleep(1000);
|
||||
t2.start();
|
||||
}
|
||||
|
||||
private void sleep(long mills) {
|
||||
try {
|
||||
TimeUnit.MILLISECONDS.sleep(mills);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@After
|
||||
public void after() {
|
||||
}
|
||||
}
|
|
@ -1,3 +1,6 @@
|
|||
|
||||
|
||||
需求:
|
||||
1. 可以读lowa的配置文件
|
||||
2. 支持对JNI方式和Restful方式的taos-driver
|
||||
2. 支持JDBC-JNI和JDBC-restful
|
||||
3. 读取配置文件,持续执行查询
|
|
@ -19,14 +19,13 @@ import java.util.Map;
|
|||
|
||||
public class TaosDemoApplication {
|
||||
|
||||
private static Logger logger = Logger.getLogger(TaosDemoApplication.class);
|
||||
private static final Logger logger = Logger.getLogger(TaosDemoApplication.class);
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
// 读配置参数
|
||||
JdbcTaosdemoConfig config = new JdbcTaosdemoConfig(args);
|
||||
boolean isHelp = Arrays.asList(args).contains("--help");
|
||||
if (isHelp || config.host == null || config.host.isEmpty()) {
|
||||
// if (isHelp) {
|
||||
JdbcTaosdemoConfig.printHelp();
|
||||
System.exit(0);
|
||||
}
|
||||
|
@ -75,7 +74,7 @@ public class TaosDemoApplication {
|
|||
}
|
||||
}
|
||||
end = System.currentTimeMillis();
|
||||
logger.error(">>> create table time cost : " + (end - start) + " ms.");
|
||||
logger.info(">>> create table time cost : " + (end - start) + " ms.");
|
||||
/**********************************************************************************/
|
||||
// 插入
|
||||
long tableSize = config.numOfTables;
|
||||
|
@ -90,7 +89,7 @@ public class TaosDemoApplication {
|
|||
// multi threads to insert
|
||||
int affectedRows = subTableService.insertMultiThreads(superTableMeta, threadSize, tableSize, startTime, gap, config);
|
||||
end = System.currentTimeMillis();
|
||||
logger.error("insert " + affectedRows + " rows, time cost: " + (end - start) + " ms");
|
||||
logger.info("insert " + affectedRows + " rows, time cost: " + (end - start) + " ms");
|
||||
/**********************************************************************************/
|
||||
// 删除表
|
||||
if (config.dropTable) {
|
||||
|
@ -108,5 +107,4 @@ public class TaosDemoApplication {
|
|||
return startTime;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -21,27 +21,27 @@ public class DatabaseMapperImpl implements DatabaseMapper {
|
|||
public void createDatabase(String dbname) {
|
||||
String sql = "create database if not exists " + dbname;
|
||||
jdbcTemplate.execute(sql);
|
||||
logger.info("SQL >>> " + sql);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dropDatabase(String dbname) {
|
||||
String sql = "drop database if exists " + dbname;
|
||||
jdbcTemplate.update(sql);
|
||||
logger.info("SQL >>> " + sql);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createDatabaseWithParameters(Map<String, String> map) {
|
||||
String sql = SqlSpeller.createDatabase(map);
|
||||
jdbcTemplate.execute(sql);
|
||||
logger.info("SQL >>> " + sql);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void useDatabase(String dbname) {
|
||||
String sql = "use " + dbname;
|
||||
jdbcTemplate.execute(sql);
|
||||
logger.info("SQL >>> " + sql);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,14 +21,14 @@ public class SubTableMapperImpl implements SubTableMapper {
|
|||
@Override
|
||||
public void createUsingSuperTable(SubTableMeta subTableMeta) {
|
||||
String sql = SqlSpeller.createTableUsingSuperTable(subTableMeta);
|
||||
logger.info("SQL >>> " + sql);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
jdbcTemplate.execute(sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertOneTableMultiValues(SubTableValue subTableValue) {
|
||||
String sql = SqlSpeller.insertOneTableMultiValues(subTableValue);
|
||||
logger.info("SQL >>> " + sql);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
|
||||
int affectRows = 0;
|
||||
try {
|
||||
|
@ -42,7 +42,7 @@ public class SubTableMapperImpl implements SubTableMapper {
|
|||
@Override
|
||||
public int insertOneTableMultiValuesUsingSuperTable(SubTableValue subTableValue) {
|
||||
String sql = SqlSpeller.insertOneTableMultiValuesUsingSuperTable(subTableValue);
|
||||
logger.info("SQL >>> " + sql);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
|
||||
int affectRows = 0;
|
||||
try {
|
||||
|
@ -56,7 +56,7 @@ public class SubTableMapperImpl implements SubTableMapper {
|
|||
@Override
|
||||
public int insertMultiTableMultiValues(List<SubTableValue> tables) {
|
||||
String sql = SqlSpeller.insertMultiSubTableMultiValues(tables);
|
||||
logger.info("SQL >>> " + sql);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
int affectRows = 0;
|
||||
try {
|
||||
affectRows = jdbcTemplate.update(sql);
|
||||
|
@ -69,7 +69,7 @@ public class SubTableMapperImpl implements SubTableMapper {
|
|||
@Override
|
||||
public int insertMultiTableMultiValuesUsingSuperTable(List<SubTableValue> tables) {
|
||||
String sql = SqlSpeller.insertMultiTableMultiValuesUsingSuperTable(tables);
|
||||
logger.info("SQL >>> " + sql);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
int affectRows = 0;
|
||||
try {
|
||||
affectRows = jdbcTemplate.update(sql);
|
||||
|
|
|
@ -18,14 +18,14 @@ public class SuperTableMapperImpl implements SuperTableMapper {
|
|||
@Override
|
||||
public void createSuperTable(SuperTableMeta tableMetadata) {
|
||||
String sql = SqlSpeller.createSuperTable(tableMetadata);
|
||||
logger.info("SQL >>> " + sql);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
jdbcTemplate.execute(sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dropSuperTable(String database, String name) {
|
||||
String sql = "drop table if exists " + database + "." + name;
|
||||
logger.info("SQL >>> " + sql);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
jdbcTemplate.execute(sql);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,43 +1,49 @@
|
|||
package com.taosdata.taosdemo.dao;
|
||||
|
||||
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.apache.log4j.Logger;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TableMapperImpl implements TableMapper {
|
||||
private static final Logger logger = Logger.getLogger(TableMapperImpl.class);
|
||||
private JdbcTemplate template;
|
||||
|
||||
@Override
|
||||
public void create(TableMeta tableMeta) {
|
||||
String sql = SqlSpeller.createTable(tableMeta);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
template.execute(sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertOneTableMultiValues(TableValue values) {
|
||||
String sql = SqlSpeller.insertOneTableMultiValues(values);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
return template.update(sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertOneTableMultiValuesWithColumns(TableValue values) {
|
||||
String sql = SqlSpeller.insertOneTableMultiValuesWithColumns(values);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
return template.update(sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertMultiTableMultiValues(List<TableValue> tables) {
|
||||
String sql = SqlSpeller.insertMultiTableMultiValues(tables);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
return template.update(sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertMultiTableMultiValuesWithColumns(List<TableValue> tables) {
|
||||
String sql = SqlSpeller.insertMultiTableMultiValuesWithColumns(tables);
|
||||
logger.debug("SQL >>> " + sql);
|
||||
return template.update(sql);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
### 设置###
|
||||
log4j.rootLogger=error,stdout
|
||||
log4j.rootLogger=info,stdout
|
||||
### 输出信息到控制抬 ###
|
||||
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.stdout.Target=System.out
|
||||
|
|
Loading…
Reference in New Issue