Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
bd79526b
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1185
Star
22015
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
bd79526b
编写于
7月 30, 2020
作者:
S
Shengliang Guan
提交者:
GitHub
7月 30, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #2810 from taosdata/fix_jdbc_url_parser
fix JDBC url parser issue
上级
89d6334d
9581b7a9
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
88 addition
and
25 deletion
+88
-25
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBDriver.java
...ctor/jdbc/src/main/java/com/taosdata/jdbc/TSDBDriver.java
+41
-25
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBDriverTest.java
.../jdbc/src/test/java/com/taosdata/jdbc/TSDBDriverTest.java
+47
-0
未找到文件。
src/connector/jdbc/src/main/java/com/taosdata/jdbc/TSDBDriver.java
浏览文件 @
bd79526b
...
...
@@ -260,50 +260,66 @@ public class TSDBDriver implements java.sql.Driver {
if
(
url
.
indexOf
(
"?"
)
!=
-
1
)
{
String
dbName
=
url
.
substring
(
0
,
url
.
indexOf
(
"?"
));
urlProps
.
setProperty
(
PROPERTY_KEY_DBNAME
,
dbName
);
url
=
url
.
trim
().
substring
(
1
);
url
=
url
.
trim
().
substring
(
url
.
indexOf
(
"?"
)
+
1
);
}
else
{
// without user & password so return
String
dbName
=
url
.
trim
();
urlProps
.
setProperty
(
PROPERTY_KEY_DBNAME
,
dbName
);
if
(!
url
.
trim
().
isEmpty
())
{
String
dbName
=
url
.
trim
();
urlProps
.
setProperty
(
PROPERTY_KEY_DBNAME
,
dbName
);
}
this
.
dbMetaData
=
new
TSDBDatabaseMetaData
(
dbProductName
,
urlForMeta
,
urlProps
.
getProperty
(
"user"
));
return
urlProps
;
}
String
[]
queryStrings
=
url
.
trim
().
split
(
"&"
);
String
user
=
""
;
if
(
url
.
indexOf
(
"&"
)
==
-
1
)
{
String
[]
kvPair
=
url
.
trim
().
split
(
"="
);
if
(
kvPair
.
length
==
2
)
{
setPropertyValue
(
urlProps
,
kvPair
);
return
urlProps
;
}
}
String
[]
queryStrings
=
url
.
trim
().
split
(
"&"
);
for
(
String
queryStr
:
queryStrings
)
{
String
[]
kvPair
=
queryStr
.
trim
().
split
(
"="
);
if
(
kvPair
.
length
<
2
){
continue
;
}
switch
(
kvPair
[
0
].
toLowerCase
())
{
case
PROPERTY_KEY_USER:
urlProps
.
setProperty
(
PROPERTY_KEY_USER
,
kvPair
[
1
]);
user
=
kvPair
[
1
];
break
;
case
PROPERTY_KEY_PASSWORD:
urlProps
.
setProperty
(
PROPERTY_KEY_PASSWORD
,
kvPair
[
1
]);
break
;
case
PROPERTY_KEY_TIME_ZONE:
urlProps
.
setProperty
(
PROPERTY_KEY_TIME_ZONE
,
kvPair
[
1
]);
break
;
case
PROPERTY_KEY_LOCALE:
urlProps
.
setProperty
(
PROPERTY_KEY_LOCALE
,
kvPair
[
1
]);
break
;
case
PROPERTY_KEY_CHARSET:
urlProps
.
setProperty
(
PROPERTY_KEY_CHARSET
,
kvPair
[
1
]);
break
;
case
PROPERTY_KEY_CONFIG_DIR:
urlProps
.
setProperty
(
PROPERTY_KEY_CONFIG_DIR
,
kvPair
[
1
]);
break
;
}
setPropertyValue
(
urlProps
,
kvPair
);
}
user
=
urlProps
.
getProperty
(
PROPERTY_KEY_USER
).
toString
();
this
.
dbMetaData
=
new
TSDBDatabaseMetaData
(
dbProductName
,
urlForMeta
,
user
);
return
urlProps
;
}
public
void
setPropertyValue
(
Properties
property
,
String
[]
keyValuePair
)
{
switch
(
keyValuePair
[
0
].
toLowerCase
())
{
case
PROPERTY_KEY_USER:
property
.
setProperty
(
PROPERTY_KEY_USER
,
keyValuePair
[
1
]);
break
;
case
PROPERTY_KEY_PASSWORD:
property
.
setProperty
(
PROPERTY_KEY_PASSWORD
,
keyValuePair
[
1
]);
break
;
case
PROPERTY_KEY_TIME_ZONE:
property
.
setProperty
(
PROPERTY_KEY_TIME_ZONE
,
keyValuePair
[
1
]);
break
;
case
PROPERTY_KEY_LOCALE:
property
.
setProperty
(
PROPERTY_KEY_LOCALE
,
keyValuePair
[
1
]);
break
;
case
PROPERTY_KEY_CHARSET:
property
.
setProperty
(
PROPERTY_KEY_CHARSET
,
keyValuePair
[
1
]);
break
;
case
PROPERTY_KEY_CONFIG_DIR:
property
.
setProperty
(
PROPERTY_KEY_CONFIG_DIR
,
keyValuePair
[
1
]);
break
;
}
}
public
int
getMajorVersion
()
{
return
1
;
}
...
...
src/connector/jdbc/src/test/java/com/taosdata/jdbc/TSDBDriverTest.java
0 → 100644
浏览文件 @
bd79526b
package
com.taosdata.jdbc
;
import
org.junit.Test
;
import
java.sql.SQLException
;
import
java.util.Properties
;
import
static
org
.
junit
.
Assert
.
assertEquals
;
public
class
TSDBDriverTest
{
@Test
public
void
urlParserTest
()
throws
SQLException
{
TSDBDriver
driver
=
new
TSDBDriver
();
String
url
=
"jdbc:TSDB://127.0.0.1:0/db?user=root&password=your_password"
;
Properties
properties
=
new
Properties
();
driver
.
parseURL
(
url
,
properties
);
assertEquals
(
properties
.
get
(
"host"
),
"127.0.0.1"
);
assertEquals
(
properties
.
get
(
"port"
),
"0"
);
assertEquals
(
properties
.
get
(
"dbname"
),
"db"
);
assertEquals
(
properties
.
get
(
"user"
),
"root"
);
assertEquals
(
properties
.
get
(
"password"
),
"your_password"
);
url
=
"jdbc:TSDB://127.0.0.1:0/log?charset=UTF-8"
;
properties
=
new
Properties
();
driver
.
parseURL
(
url
,
properties
);
assertEquals
(
properties
.
get
(
"host"
),
"127.0.0.1"
);
assertEquals
(
properties
.
get
(
"port"
),
"0"
);
assertEquals
(
properties
.
get
(
"dbname"
),
"log"
);
assertEquals
(
properties
.
get
(
"charset"
),
"UTF-8"
);
url
=
"jdbc:TSDB://127.0.0.1:0/"
;
properties
=
new
Properties
();
driver
.
parseURL
(
url
,
properties
);
assertEquals
(
properties
.
get
(
"host"
),
"127.0.0.1"
);
assertEquals
(
properties
.
get
(
"port"
),
"0"
);
assertEquals
(
properties
.
get
(
"dbname"
),
null
);
url
=
"jdbc:TSDB://127.0.0.1:0/db"
;
properties
=
new
Properties
();
driver
.
parseURL
(
url
,
properties
);
assertEquals
(
properties
.
get
(
"host"
),
"127.0.0.1"
);
assertEquals
(
properties
.
get
(
"port"
),
"0"
);
assertEquals
(
properties
.
get
(
"dbname"
),
"db"
);
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录