Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
为 GitLab 提交贡献
登录/注册
切换导航
H
h2database
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
Administrator
h2database
Commits
57945c49
Unverified
提交
57945c49
authored
7 年前
作者:
Noel Grandin
提交者:
GitHub
7 年前
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #844 from katzyn/wrapper
Add simple implementations of isWrapperFor() and unwrap() to JdbcDataSource
上级
88a7bfaa
80cd32ab
master
version-1.4.198
version-1.4.197
无相关合并请求
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
33 行增加
和
4 行删除
+33
-4
JdbcDataSource.java
h2/src/main/org/h2/jdbcx/JdbcDataSource.java
+13
-4
TestDataSource.java
h2/src/test/org/h2/test/jdbcx/TestDataSource.java
+20
-0
没有找到文件。
h2/src/main/org/h2/jdbcx/JdbcDataSource.java
浏览文件 @
57945c49
...
...
@@ -23,6 +23,7 @@ import javax.sql.XAConnection;
import
javax.sql.XADataSource
;
import
org.h2.Driver
;
import
org.h2.jdbc.JdbcConnection
;
import
org.h2.message.DbException
;
import
org.h2.message.TraceObject
;
import
org.h2.util.StringUtils
;
...
...
@@ -401,23 +402,31 @@ public class JdbcDataSource extends TraceObject implements XADataSource,
}
/**
*
[Not supported]
Return an object of this class if possible.
* Return an object of this class if possible.
*
* @param iface the class
*/
@Override
@SuppressWarnings
(
"unchecked"
)
public
<
T
>
T
unwrap
(
Class
<
T
>
iface
)
throws
SQLException
{
throw
unsupported
(
"unwrap"
);
try
{
if
(
isWrapperFor
(
iface
))
{
return
(
T
)
this
;
}
throw
DbException
.
getInvalidValueException
(
"iface"
,
iface
);
}
catch
(
Exception
e
)
{
throw
logAndConvert
(
e
);
}
}
/**
*
[Not supported]
Checks if unwrap can return an object of this class.
* Checks if unwrap can return an object of this class.
*
* @param iface the class
*/
@Override
public
boolean
isWrapperFor
(
Class
<?>
iface
)
throws
SQLException
{
throw
unsupported
(
"isWrapperFor"
);
return
iface
!=
null
&&
iface
.
isAssignableFrom
(
getClass
()
);
}
/**
...
...
This diff is collapsed.
Click to expand it.
h2/src/test/org/h2/test/jdbcx/TestDataSource.java
浏览文件 @
57945c49
...
...
@@ -15,9 +15,12 @@ import javax.naming.StringRefAddr;
import
javax.naming.spi.ObjectFactory
;
import
javax.sql.ConnectionEvent
;
import
javax.sql.ConnectionEventListener
;
import
javax.sql.DataSource
;
import
javax.sql.XAConnection
;
import
javax.transaction.xa.XAResource
;
import
javax.transaction.xa.Xid
;
import
org.h2.api.ErrorCode
;
import
org.h2.jdbcx.JdbcDataSource
;
import
org.h2.jdbcx.JdbcDataSourceFactory
;
import
org.h2.jdbcx.JdbcXAConnection
;
...
...
@@ -71,6 +74,7 @@ public class TestDataSource extends TestBase {
}
testDataSourceFactory
();
testDataSource
();
testUnwrap
();
testXAConnection
();
deleteDb
(
"dataSource"
);
}
...
...
@@ -190,4 +194,20 @@ public class TestDataSource extends TestBase {
conn
.
close
();
}
private
void
testUnwrap
()
throws
SQLException
{
JdbcDataSource
ds
=
new
JdbcDataSource
();
assertTrue
(
ds
.
isWrapperFor
(
Object
.
class
));
assertTrue
(
ds
.
isWrapperFor
(
DataSource
.
class
));
assertTrue
(
ds
.
isWrapperFor
(
JdbcDataSource
.
class
));
assertFalse
(
ds
.
isWrapperFor
(
String
.
class
));
assertTrue
(
ds
==
ds
.
unwrap
(
Object
.
class
));
assertTrue
(
ds
==
ds
.
unwrap
(
DataSource
.
class
));
try
{
ds
.
unwrap
(
String
.
class
);
fail
();
}
catch
(
SQLException
ex
)
{
assertEquals
(
ErrorCode
.
INVALID_VALUE_2
,
ex
.
getErrorCode
());
}
}
}
This diff is collapsed.
Click to expand it.
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论