Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
a1f747a8
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
a1f747a8
编写于
3月 12, 2021
作者:
sangshuduo
提交者:
GitHub
3月 12, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #5418 from taosdata/hotfix/TD-3222
[TD-3222]<fix>: fix failover test case failed caused by JDBC-JNI driver
上级
89a2451a
9db0a255
变更
8
显示空白变更内容
内联
并排
Showing
8 changed file
with
100 addition
and
199 deletion
+100
-199
src/connector/jdbc/src/main/java/com/taosdata/jdbc/AbstractDriver.java
.../jdbc/src/main/java/com/taosdata/jdbc/AbstractDriver.java
+0
-64
src/connector/jdbc/src/main/java/com/taosdata/jdbc/ColumnMetaData.java
.../jdbc/src/main/java/com/taosdata/jdbc/ColumnMetaData.java
+10
-0
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBConnection.java
.../jdbc/src/main/java/com/taosdata/jdbc/TSDBConnection.java
+3
-4
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBDriver.java
...ctor/jdbc/src/main/java/com/taosdata/jdbc/TSDBDriver.java
+0
-2
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java
...dbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java
+6
-2
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSet.java
...r/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSet.java
+26
-31
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBStatement.java
...r/jdbc/src/main/java/com/taosdata/jdbc/TSDBStatement.java
+5
-5
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBJNIConnectorTest.java
...src/test/java/com/taosdata/jdbc/TSDBJNIConnectorTest.java
+50
-91
未找到文件。
src/connector/jdbc/src/main/java/com/taosdata/jdbc/AbstractDriver.java
浏览文件 @
a1f747a8
package
com.taosdata.jdbc
;
package
com.taosdata.jdbc
;
import
java.io.*
;
import
java.sql.Driver
;
import
java.sql.Driver
;
import
java.sql.DriverPropertyInfo
;
import
java.sql.DriverPropertyInfo
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Properties
;
import
java.util.Properties
;
import
java.util.StringTokenizer
;
import
java.util.StringTokenizer
;
public
abstract
class
AbstractDriver
implements
Driver
{
public
abstract
class
AbstractDriver
implements
Driver
{
private
static
final
String
TAOS_CFG_FILENAME
=
"taos.cfg"
;
/**
* @param cfgDirPath
* @return return the config dir
**/
protected
File
loadConfigDir
(
String
cfgDirPath
)
{
if
(
cfgDirPath
==
null
)
return
loadDefaultConfigDir
();
File
cfgDir
=
new
File
(
cfgDirPath
);
if
(!
cfgDir
.
exists
())
return
loadDefaultConfigDir
();
return
cfgDir
;
}
/**
* @return search the default config dir, if the config dir is not exist will return null
*/
protected
File
loadDefaultConfigDir
()
{
File
cfgDir
;
File
cfgDir_linux
=
new
File
(
"/etc/taos"
);
cfgDir
=
cfgDir_linux
.
exists
()
?
cfgDir_linux
:
null
;
File
cfgDir_windows
=
new
File
(
"C:\\TDengine\\cfg"
);
cfgDir
=
(
cfgDir
==
null
&&
cfgDir_windows
.
exists
())
?
cfgDir_windows
:
cfgDir
;
return
cfgDir
;
}
protected
List
<
String
>
loadConfigEndpoints
(
File
cfgFile
)
{
List
<
String
>
endpoints
=
new
ArrayList
<>();
try
(
BufferedReader
reader
=
new
BufferedReader
(
new
FileReader
(
cfgFile
)))
{
String
line
=
null
;
while
((
line
=
reader
.
readLine
())
!=
null
)
{
if
(
line
.
trim
().
startsWith
(
"firstEp"
)
||
line
.
trim
().
startsWith
(
"secondEp"
))
{
endpoints
.
add
(
line
.
substring
(
line
.
indexOf
(
'p'
)
+
1
).
trim
());
}
if
(
endpoints
.
size
()
>
1
)
break
;
}
}
catch
(
FileNotFoundException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
endpoints
;
}
protected
void
loadTaosConfig
(
Properties
info
)
{
if
((
info
.
getProperty
(
TSDBDriver
.
PROPERTY_KEY_HOST
)
==
null
||
info
.
getProperty
(
TSDBDriver
.
PROPERTY_KEY_HOST
).
isEmpty
())
&&
(
info
.
getProperty
(
TSDBDriver
.
PROPERTY_KEY_PORT
)
==
null
||
info
.
getProperty
(
TSDBDriver
.
PROPERTY_KEY_PORT
).
isEmpty
()))
{
File
cfgDir
=
loadConfigDir
(
info
.
getProperty
(
TSDBDriver
.
PROPERTY_KEY_CONFIG_DIR
));
File
cfgFile
=
cfgDir
.
listFiles
((
dir
,
name
)
->
TAOS_CFG_FILENAME
.
equalsIgnoreCase
(
name
))[
0
];
List
<
String
>
endpoints
=
loadConfigEndpoints
(
cfgFile
);
if
(!
endpoints
.
isEmpty
())
{
info
.
setProperty
(
TSDBDriver
.
PROPERTY_KEY_HOST
,
endpoints
.
get
(
0
).
split
(
":"
)[
0
]);
info
.
setProperty
(
TSDBDriver
.
PROPERTY_KEY_PORT
,
endpoints
.
get
(
0
).
split
(
":"
)[
1
]);
}
}
}
protected
DriverPropertyInfo
[]
getPropertyInfo
(
Properties
info
)
{
protected
DriverPropertyInfo
[]
getPropertyInfo
(
Properties
info
)
{
DriverPropertyInfo
hostProp
=
new
DriverPropertyInfo
(
TSDBDriver
.
PROPERTY_KEY_HOST
,
info
.
getProperty
(
TSDBDriver
.
PROPERTY_KEY_HOST
));
DriverPropertyInfo
hostProp
=
new
DriverPropertyInfo
(
TSDBDriver
.
PROPERTY_KEY_HOST
,
info
.
getProperty
(
TSDBDriver
.
PROPERTY_KEY_HOST
));
hostProp
.
required
=
false
;
hostProp
.
required
=
false
;
...
@@ -154,6 +92,4 @@ public abstract class AbstractDriver implements Driver {
...
@@ -154,6 +92,4 @@ public abstract class AbstractDriver implements Driver {
return
urlProps
;
return
urlProps
;
}
}
}
}
src/connector/jdbc/src/main/java/com/taosdata/jdbc/ColumnMetaData.java
浏览文件 @
a1f747a8
...
@@ -52,4 +52,14 @@ public class ColumnMetaData {
...
@@ -52,4 +52,14 @@ public class ColumnMetaData {
public
void
setColIndex
(
int
colIndex
)
{
public
void
setColIndex
(
int
colIndex
)
{
this
.
colIndex
=
colIndex
;
this
.
colIndex
=
colIndex
;
}
}
@Override
public
String
toString
()
{
return
"ColumnMetaData{"
+
"colType="
+
colType
+
", colName='"
+
colName
+
'\''
+
", colSize="
+
colSize
+
", colIndex="
+
colIndex
+
'}'
;
}
}
}
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBConnection.java
浏览文件 @
a1f747a8
...
@@ -87,11 +87,10 @@ public class TSDBConnection extends AbstractConnection {
...
@@ -87,11 +87,10 @@ public class TSDBConnection extends AbstractConnection {
}
}
public
void
close
()
throws
SQLException
{
public
void
close
()
throws
SQLException
{
if
(
isClosed
())
{
if
(
isClosed
)
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_CONNECTION_CLOSED
);
return
;
}
this
.
isClosed
=
true
;
this
.
connector
.
closeConnection
();
this
.
connector
.
closeConnection
();
this
.
isClosed
=
true
;
}
}
public
boolean
isClosed
()
throws
SQLException
{
public
boolean
isClosed
()
throws
SQLException
{
...
...
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBDriver.java
浏览文件 @
a1f747a8
...
@@ -112,8 +112,6 @@ public class TSDBDriver extends AbstractDriver {
...
@@ -112,8 +112,6 @@ public class TSDBDriver extends AbstractDriver {
if
((
props
=
parseURL
(
url
,
info
))
==
null
)
{
if
((
props
=
parseURL
(
url
,
info
))
==
null
)
{
return
null
;
return
null
;
}
}
//load taos.cfg start
loadTaosConfig
(
info
);
try
{
try
{
TSDBJNIConnector
.
init
((
String
)
props
.
get
(
PROPERTY_KEY_CONFIG_DIR
),
(
String
)
props
.
get
(
PROPERTY_KEY_LOCALE
),
TSDBJNIConnector
.
init
((
String
)
props
.
get
(
PROPERTY_KEY_CONFIG_DIR
),
(
String
)
props
.
get
(
PROPERTY_KEY_LOCALE
),
...
...
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBJNIConnector.java
浏览文件 @
a1f747a8
/***************************************************************************
/**
* *************************************************************************
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
*
* This program is free software: you can use, redistribute, and/or modify
* This program is free software: you can use, redistribute, and/or modify
...
@@ -11,7 +12,7 @@
...
@@ -11,7 +12,7 @@
*
*
* You should have received a copy of the GNU Affero General Public License
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*****************************************************************************/
****************************************************************************
*/
package
com.taosdata.jdbc
;
package
com.taosdata.jdbc
;
import
com.taosdata.jdbc.utils.TaosInfo
;
import
com.taosdata.jdbc.utils.TaosInfo
;
...
@@ -20,6 +21,9 @@ import java.sql.SQLException;
...
@@ -20,6 +21,9 @@ import java.sql.SQLException;
import
java.sql.SQLWarning
;
import
java.sql.SQLWarning
;
import
java.util.List
;
import
java.util.List
;
/**
* JNI connector
* */
public
class
TSDBJNIConnector
{
public
class
TSDBJNIConnector
{
private
static
volatile
Boolean
isInitialized
=
false
;
private
static
volatile
Boolean
isInitialized
=
false
;
...
...
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBResultSet.java
浏览文件 @
a1f747a8
...
@@ -20,18 +20,16 @@ import java.util.ArrayList;
...
@@ -20,18 +20,16 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.List
;
public
class
TSDBResultSet
extends
AbstractResultSet
implements
ResultSet
{
public
class
TSDBResultSet
extends
AbstractResultSet
implements
ResultSet
{
private
TSDBJNIConnector
jniConnector
;
private
final
TSDBJNIConnector
jniConnector
;
private
final
TSDBStatement
statement
;
private
final
TSDBStatement
statement
;
private
long
resultSetPointer
=
0L
;
private
final
long
resultSetPointer
;
private
List
<
ColumnMetaData
>
columnMetaDataList
=
new
ArrayList
<>();
private
List
<
ColumnMetaData
>
columnMetaDataList
=
new
ArrayList
<>();
private
final
TSDBResultSetRowData
rowData
;
private
TSDBResultSetRowData
rowData
;
private
final
TSDBResultSetBlockData
blockData
;
private
TSDBResultSetBlockData
blockData
;
private
boolean
batchFetch
=
false
;
private
boolean
batchFetch
=
false
;
private
boolean
lastWasNull
=
false
;
private
boolean
lastWasNull
=
false
;
private
final
int
COLUMN_INDEX_START_VALUE
=
1
;
private
boolean
isClosed
;
public
void
setBatchFetch
(
boolean
batchFetch
)
{
public
void
setBatchFetch
(
boolean
batchFetch
)
{
this
.
batchFetch
=
batchFetch
;
this
.
batchFetch
=
batchFetch
;
...
@@ -56,13 +54,13 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
...
@@ -56,13 +54,13 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
int
code
=
this
.
jniConnector
.
getSchemaMetaData
(
this
.
resultSetPointer
,
this
.
columnMetaDataList
);
int
code
=
this
.
jniConnector
.
getSchemaMetaData
(
this
.
resultSetPointer
,
this
.
columnMetaDataList
);
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
throw
new
SQLException
(
TSDBConstants
.
FixErrMsg
(
TSDBConstants
.
JNI_CONNECTION_NULL
)
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_CONNECTION_NULL
);
}
}
if
(
code
==
TSDBConstants
.
JNI_RESULT_SET_NULL
)
{
if
(
code
==
TSDBConstants
.
JNI_RESULT_SET_NULL
)
{
throw
new
SQLException
(
TSDBConstants
.
FixErrMsg
(
TSDBConstants
.
JNI_RESULT_SET_NULL
)
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_RESULT_SET_NULL
);
}
}
if
(
code
==
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
)
{
if
(
code
==
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
)
{
throw
new
SQLException
(
TSDBConstants
.
FixErrMsg
(
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
)
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_NUM_OF_FIELDS_0
);
}
}
this
.
rowData
=
new
TSDBResultSetRowData
(
this
.
columnMetaDataList
.
size
());
this
.
rowData
=
new
TSDBResultSetRowData
(
this
.
columnMetaDataList
.
size
());
this
.
blockData
=
new
TSDBResultSetBlockData
(
this
.
columnMetaDataList
,
this
.
columnMetaDataList
.
size
());
this
.
blockData
=
new
TSDBResultSetBlockData
(
this
.
columnMetaDataList
,
this
.
columnMetaDataList
.
size
());
...
@@ -78,16 +76,12 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
...
@@ -78,16 +76,12 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
this
.
blockData
.
reset
();
this
.
blockData
.
reset
();
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
throw
new
SQLException
(
TSDBConstants
.
FixErrMsg
(
TSDBConstants
.
JNI_CONNECTION_NULL
)
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_CONNECTION_NULL
);
}
else
if
(
code
==
TSDBConstants
.
JNI_RESULT_SET_NULL
)
{
}
else
if
(
code
==
TSDBConstants
.
JNI_RESULT_SET_NULL
)
{
throw
new
SQLException
(
TSDBConstants
.
FixErrMsg
(
TSDBConstants
.
JNI_RESULT_SET_NULL
)
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_RESULT_SET_NULL
);
}
else
if
(
code
==
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
)
{
}
else
if
(
code
==
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
)
{
throw
new
SQLException
(
TSDBConstants
.
FixErrMsg
(
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
));
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_NUM_OF_FIELDS_0
);
}
else
if
(
code
==
TSDBConstants
.
JNI_FETCH_END
)
{
}
else
return
code
!=
TSDBConstants
.
JNI_FETCH_END
;
return
false
;
}
return
true
;
}
else
{
}
else
{
if
(
rowData
!=
null
)
{
if
(
rowData
!=
null
)
{
this
.
rowData
.
clear
();
this
.
rowData
.
clear
();
...
@@ -95,11 +89,11 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
...
@@ -95,11 +89,11 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
int
code
=
this
.
jniConnector
.
fetchRow
(
this
.
resultSetPointer
,
this
.
rowData
);
int
code
=
this
.
jniConnector
.
fetchRow
(
this
.
resultSetPointer
,
this
.
rowData
);
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
throw
new
SQLException
(
TSDBConstants
.
FixErrMsg
(
TSDBConstants
.
JNI_CONNECTION_NULL
)
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_CONNECTION_NULL
);
}
else
if
(
code
==
TSDBConstants
.
JNI_RESULT_SET_NULL
)
{
}
else
if
(
code
==
TSDBConstants
.
JNI_RESULT_SET_NULL
)
{
throw
new
SQLException
(
TSDBConstants
.
FixErrMsg
(
TSDBConstants
.
JNI_RESULT_SET_NULL
)
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_RESULT_SET_NULL
);
}
else
if
(
code
==
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
)
{
}
else
if
(
code
==
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
)
{
throw
new
SQLException
(
TSDBConstants
.
FixErrMsg
(
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
)
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_NUM_OF_FIELDS_0
);
}
else
if
(
code
==
TSDBConstants
.
JNI_FETCH_END
)
{
}
else
if
(
code
==
TSDBConstants
.
JNI_FETCH_END
)
{
return
false
;
return
false
;
}
else
{
}
else
{
...
@@ -109,14 +103,17 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
...
@@ -109,14 +103,17 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
}
}
public
void
close
()
throws
SQLException
{
public
void
close
()
throws
SQLException
{
if
(
isClosed
)
return
;
if
(
this
.
jniConnector
!=
null
)
{
if
(
this
.
jniConnector
!=
null
)
{
int
code
=
this
.
jniConnector
.
freeResultSet
(
this
.
resultSetPointer
);
int
code
=
this
.
jniConnector
.
freeResultSet
(
this
.
resultSetPointer
);
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
throw
new
SQLException
(
TSDBConstants
.
FixErrMsg
(
TSDBConstants
.
JNI_CONNECTION_NULL
)
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_CONNECTION_NULL
);
}
else
if
(
code
==
TSDBConstants
.
JNI_RESULT_SET_NULL
)
{
}
else
if
(
code
==
TSDBConstants
.
JNI_RESULT_SET_NULL
)
{
throw
new
SQLException
(
TSDBConstants
.
FixErrMsg
(
TSDBConstants
.
JNI_RESULT_SET_NULL
)
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_RESULT_SET_NULL
);
}
}
}
}
isClosed
=
true
;
}
}
public
boolean
wasNull
()
throws
SQLException
{
public
boolean
wasNull
()
throws
SQLException
{
...
@@ -415,8 +412,8 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
...
@@ -415,8 +412,8 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
}
}
public
boolean
isClosed
()
throws
SQLException
{
public
boolean
isClosed
()
throws
SQLException
{
//TODO: check if need release resources
if
(
isClosed
)
boolean
isClosed
=
true
;
return
true
;
if
(
jniConnector
!=
null
)
{
if
(
jniConnector
!=
null
)
{
isClosed
=
jniConnector
.
isResultsetClosed
();
isClosed
=
jniConnector
.
isResultsetClosed
();
}
}
...
@@ -429,14 +426,12 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
...
@@ -429,14 +426,12 @@ public class TSDBResultSet extends AbstractResultSet implements ResultSet {
}
}
private
int
getTrueColumnIndex
(
int
columnIndex
)
throws
SQLException
{
private
int
getTrueColumnIndex
(
int
columnIndex
)
throws
SQLException
{
if
(
columnIndex
<
this
.
COLUMN_INDEX_START_VALUE
)
{
if
(
columnIndex
<
1
)
throw
new
SQLException
(
"Column Index out of range, "
+
columnIndex
+
" < "
+
this
.
COLUMN_INDEX_START_VALUE
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_PARAMETER_INDEX_OUT_RANGE
,
"columnIndex("
+
columnIndex
+
"): < 1"
);
}
int
numOfCols
=
this
.
columnMetaDataList
.
size
();
int
numOfCols
=
this
.
columnMetaDataList
.
size
();
if
(
columnIndex
>
numOfCols
)
{
if
(
columnIndex
>
numOfCols
)
throw
new
SQLException
(
"Column Index out of range, "
+
columnIndex
+
" > "
+
numOfCols
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_PARAMETER_INDEX_OUT_RANGE
,
"columnIndex: "
+
columnIndex
);
}
return
columnIndex
-
1
;
return
columnIndex
-
1
;
}
}
}
}
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBStatement.java
浏览文件 @
a1f747a8
...
@@ -73,12 +73,12 @@ public class TSDBStatement extends AbstractStatement {
...
@@ -73,12 +73,12 @@ public class TSDBStatement extends AbstractStatement {
}
}
public
void
close
()
throws
SQLException
{
public
void
close
()
throws
SQLException
{
if
(!
isClosed
)
{
if
(
isClosed
)
if
(
this
.
resultSet
!=
null
)
return
;
if
(
this
.
resultSet
!=
null
&&
!
this
.
resultSet
.
isClosed
())
this
.
resultSet
.
close
();
this
.
resultSet
.
close
();
isClosed
=
true
;
isClosed
=
true
;
}
}
}
public
boolean
execute
(
String
sql
)
throws
SQLException
{
public
boolean
execute
(
String
sql
)
throws
SQLException
{
// check if closed
// check if closed
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBJNIConnectorTest.java
浏览文件 @
a1f747a8
...
@@ -7,24 +7,26 @@ import java.sql.SQLWarning;
...
@@ -7,24 +7,26 @@ import java.sql.SQLWarning;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
static
org
.
junit
.
Assert
.*;
public
class
TSDBJNIConnectorTest
{
public
class
TSDBJNIConnectorTest
{
public
static
void
main
(
String
[]
args
)
{
private
static
TSDBResultSetRowData
rowData
;
@Test
public
void
test
()
{
try
{
try
{
TSDBJNIConnector
.
init
(
"/etc/taos/taos.cfg"
,
"en_US.UTF-8"
,
""
,
""
);
// init
TSDBJNIConnector
.
init
(
null
,
null
,
null
,
null
);
// connect
TSDBJNIConnector
connector
=
new
TSDBJNIConnector
();
TSDBJNIConnector
connector
=
new
TSDBJNIConnector
();
connector
.
connect
(
"127.0.0.1"
,
6030
,
"test"
,
"root"
,
"taosdata"
);
connector
.
connect
(
"127.0.0.1"
,
6030
,
null
,
"root"
,
"taosdata"
);
long
pSql
=
connector
.
executeQuery
(
"show dnodes"
);
// executeQuery
// if pSql is create/insert/update/delete/alter SQL
long
pSql
=
connector
.
executeQuery
(
"show variables"
);
if
(
connector
.
isUpdateQuery
(
pSql
))
{
if
(
connector
.
isUpdateQuery
(
pSql
))
{
connector
.
freeResultSet
(
pSql
);
connector
.
freeResultSet
(
pSql
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_INVALID_WITH_EXECUTEQUERY
);
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_INVALID_WITH_EXECUTEQUERY
);
}
}
// get schema
List
<
ColumnMetaData
>
columnMetaDataList
=
new
ArrayList
<>();
List
<
ColumnMetaData
>
columnMetaDataList
=
new
ArrayList
<>();
int
code
=
connector
.
getSchemaMetaData
(
pSql
,
columnMetaDataList
);
int
code
=
connector
.
getSchemaMetaData
(
pSql
,
columnMetaDataList
);
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
throw
new
SQLException
(
TSDBConstants
.
FixErrMsg
(
TSDBConstants
.
JNI_CONNECTION_NULL
));
throw
new
SQLException
(
TSDBConstants
.
FixErrMsg
(
TSDBConstants
.
JNI_CONNECTION_NULL
));
...
@@ -35,96 +37,53 @@ public class TSDBJNIConnectorTest {
...
@@ -35,96 +37,53 @@ public class TSDBJNIConnectorTest {
if
(
code
==
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
)
{
if
(
code
==
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
)
{
throw
new
SQLException
(
TSDBConstants
.
FixErrMsg
(
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
));
throw
new
SQLException
(
TSDBConstants
.
FixErrMsg
(
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
));
}
}
int
columnSize
=
columnMetaDataList
.
size
();
}
catch
(
SQLWarning
throwables
)
{
// print metadata
throwables
.
printStackTrace
();
for
(
int
i
=
0
;
i
<
columnSize
;
i
++)
{
}
catch
(
SQLException
e
)
{
System
.
out
.
println
(
columnMetaDataList
.
get
(
i
));
e
.
printStackTrace
();
}
}
@Test
public
void
isClosed
()
{
}
@Test
public
void
isResultsetClosed
()
{
}
@Test
public
void
init
()
{
}
@Test
public
void
initImp
()
{
}
@Test
public
void
setOptions
()
{
}
@Test
public
void
getTsCharset
()
{
}
@Test
public
void
connect
()
{
}
@Test
public
void
executeQuery
()
{
}
@Test
public
void
getErrCode
()
{
}
@Test
public
void
getErrMsg
()
{
}
@Test
public
void
isUpdateQuery
()
{
}
}
rowData
=
new
TSDBResultSetRowData
(
columnSize
);
@Test
// iterate resultSet
public
void
freeResultSet
()
{
for
(
int
i
=
0
;
next
(
connector
,
pSql
);
i
++)
{
System
.
out
.
println
(
"col["
+
i
+
"] size: "
+
rowData
.
getColSize
());
rowData
.
getData
().
stream
().
forEach
(
col
->
System
.
out
.
print
(
col
+
"\t"
));
System
.
out
.
println
();
}
}
// close resultSet
@Test
code
=
connector
.
freeResultSet
(
pSql
);
public
void
getAffectedRows
()
{
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_CONNECTION_NULL
);
}
else
if
(
code
==
TSDBConstants
.
JNI_RESULT_SET_NULL
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_RESULT_SET_NULL
);
}
}
// close statement
@Test
// close connection
public
void
getSchemaMetaData
()
{
connector
.
closeConnection
();
}
@Test
}
catch
(
SQLWarning
throwables
)
{
public
void
fetchRow
()
{
throwables
.
printStackTrace
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
@Test
public
void
fetchBlock
()
{
}
}
@Test
private
static
boolean
next
(
TSDBJNIConnector
connector
,
long
pSql
)
throws
SQLException
{
public
void
closeConnection
()
{
if
(
rowData
!=
null
)
}
rowData
.
clear
();
@Test
int
code
=
connector
.
fetchRow
(
pSql
,
rowData
);
public
void
subscribe
()
{
if
(
code
==
TSDBConstants
.
JNI_CONNECTION_NULL
)
{
}
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_CONNECTION_NULL
);
}
else
if
(
code
==
TSDBConstants
.
JNI_RESULT_SET_NULL
)
{
@Test
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_RESULT_SET_NULL
);
public
void
consume
()
{
}
else
if
(
code
==
TSDBConstants
.
JNI_NUM_OF_FIELDS_0
)
{
throw
TSDBError
.
createSQLException
(
TSDBErrorNumbers
.
ERROR_JNI_NUM_OF_FIELDS_0
);
}
else
if
(
code
==
TSDBConstants
.
JNI_FETCH_END
)
{
return
false
;
}
else
{
return
true
;
}
}
@Test
public
void
unsubscribe
()
{
}
}
@Test
public
void
validateCreateTableSql
()
{
}
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录