Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
5b703313
Shardingsphere
项目概览
apache
/
Shardingsphere
通知
56
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Shardingsphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5b703313
编写于
6月 15, 2017
作者:
T
terrymanu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
remove ThrowableSQLExceptionMethod from SQLUtil
上级
abc5011e
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
50 addition
and
98 deletion
+50
-98
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/jdbc/adapter/AbstractConnectionAdapter.java
.../rdb/sharding/jdbc/adapter/AbstractConnectionAdapter.java
+18
-14
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/jdbc/adapter/AbstractResultSetAdapter.java
...e/rdb/sharding/jdbc/adapter/AbstractResultSetAdapter.java
+11
-8
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/jdbc/adapter/AbstractStatementAdapter.java
...e/rdb/sharding/jdbc/adapter/AbstractStatementAdapter.java
+10
-9
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/jdbc/adapter/WrapperAdapter.java
...ang/ddframe/rdb/sharding/jdbc/adapter/WrapperAdapter.java
+11
-0
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/util/SQLUtil.java
.../java/com/dangdang/ddframe/rdb/sharding/util/SQLUtil.java
+0
-31
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/util/ThrowableSQLExceptionMethod.java
...dframe/rdb/sharding/util/ThrowableSQLExceptionMethod.java
+0
-36
未找到文件。
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/jdbc/adapter/AbstractConnectionAdapter.java
浏览文件 @
5b703313
...
...
@@ -19,14 +19,13 @@ package com.dangdang.ddframe.rdb.sharding.jdbc.adapter;
import
com.dangdang.ddframe.rdb.sharding.jdbc.unsupported.AbstractUnsupportedOperationConnection
;
import
com.dangdang.ddframe.rdb.sharding.metrics.MetricsContext
;
import
com.dangdang.ddframe.rdb.sharding.util.SQLUtil
;
import
com.dangdang.ddframe.rdb.sharding.util.ThrowableSQLExceptionMethod
;
import
java.sql.Connection
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.sql.SQLWarning
;
import
java.util.Collection
;
import
java.util.LinkedList
;
/**
* 数据库连接适配类.
...
...
@@ -71,25 +70,30 @@ public abstract class AbstractConnectionAdapter extends AbstractUnsupportedOpera
@Override
public
final
void
rollback
()
throws
SQLException
{
SQLUtil
.
safeInvoke
(
getConnections
(),
new
ThrowableSQLExceptionMethod
<
Connection
>()
{
@Override
public
void
apply
(
final
Connection
object
)
throws
SQLException
{
object
.
rollback
();
Collection
<
SQLException
>
exceptions
=
new
LinkedList
<>();
for
(
Connection
each
:
getConnections
())
{
try
{
each
.
rollback
();
}
catch
(
final
SQLException
ex
)
{
exceptions
.
add
(
ex
);
}
});
}
throwSQLExceptionIfNessesary
(
exceptions
);
}
@Override
public
void
close
()
throws
SQLException
{
SQLUtil
.
safeInvoke
(
getConnections
(),
new
ThrowableSQLExceptionMethod
<
Connection
>()
{
@Override
public
void
apply
(
final
Connection
object
)
throws
SQLException
{
object
.
close
();
}
});
closed
=
true
;
MetricsContext
.
clear
();
Collection
<
SQLException
>
exceptions
=
new
LinkedList
<>();
for
(
Connection
each
:
getConnections
())
{
try
{
each
.
close
();
}
catch
(
final
SQLException
ex
)
{
exceptions
.
add
(
ex
);
}
}
throwSQLExceptionIfNessesary
(
exceptions
);
}
@Override
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/jdbc/adapter/AbstractResultSetAdapter.java
浏览文件 @
5b703313
...
...
@@ -18,8 +18,6 @@
package
com.dangdang.ddframe.rdb.sharding.jdbc.adapter
;
import
com.dangdang.ddframe.rdb.sharding.jdbc.unsupported.AbstractUnsupportedOperationResultSet
;
import
com.dangdang.ddframe.rdb.sharding.util.SQLUtil
;
import
com.dangdang.ddframe.rdb.sharding.util.ThrowableSQLExceptionMethod
;
import
com.google.common.base.Preconditions
;
import
lombok.Getter
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -28,6 +26,8 @@ import org.apache.commons.collections4.map.CaseInsensitiveMap;
import
java.sql.ResultSet
;
import
java.sql.ResultSetMetaData
;
import
java.sql.SQLException
;
import
java.util.Collection
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -64,13 +64,16 @@ public abstract class AbstractResultSetAdapter extends AbstractUnsupportedOperat
@Override
public
final
void
close
()
throws
SQLException
{
SQLUtil
.
safeInvoke
(
resultSets
,
new
ThrowableSQLExceptionMethod
<
ResultSet
>()
{
@Override
public
void
apply
(
final
ResultSet
object
)
throws
SQLException
{
object
.
close
();
}
});
closed
=
true
;
Collection
<
SQLException
>
exceptions
=
new
LinkedList
<>();
for
(
ResultSet
each
:
resultSets
)
{
try
{
each
.
close
();
}
catch
(
final
SQLException
ex
)
{
exceptions
.
add
(
ex
);
}
}
throwSQLExceptionIfNessesary
(
exceptions
);
}
@Override
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/jdbc/adapter/AbstractStatementAdapter.java
浏览文件 @
5b703313
...
...
@@ -18,14 +18,13 @@
package
com.dangdang.ddframe.rdb.sharding.jdbc.adapter
;
import
com.dangdang.ddframe.rdb.sharding.jdbc.unsupported.AbstractUnsupportedOperationStatement
;
import
com.dangdang.ddframe.rdb.sharding.util.SQLUtil
;
import
com.dangdang.ddframe.rdb.sharding.util.ThrowableSQLExceptionMethod
;
import
lombok.RequiredArgsConstructor
;
import
java.sql.SQLException
;
import
java.sql.SQLWarning
;
import
java.sql.Statement
;
import
java.util.Collection
;
import
java.util.LinkedList
;
/**
* 静态语句对象适配类.
...
...
@@ -46,15 +45,17 @@ public abstract class AbstractStatementAdapter extends AbstractUnsupportedOperat
@Override
@SuppressWarnings
(
"unchecked"
)
public
final
void
close
()
throws
SQLException
{
SQLUtil
.
safeInvoke
(
getRoutedStatements
(),
new
ThrowableSQLExceptionMethod
()
{
@Override
public
void
apply
(
final
Object
object
)
throws
SQLException
{
((
Statement
)
object
).
close
();
}
});
closed
=
true
;
getRoutedStatements
().
clear
();
Collection
<
SQLException
>
exceptions
=
new
LinkedList
<>();
for
(
Statement
each
:
getRoutedStatements
())
{
try
{
each
.
close
();
}
catch
(
final
SQLException
ex
)
{
exceptions
.
add
(
ex
);
}
}
throwSQLExceptionIfNessesary
(
exceptions
);
}
@Override
...
...
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/jdbc/adapter/WrapperAdapter.java
浏览文件 @
5b703313
...
...
@@ -74,4 +74,15 @@ public class WrapperAdapter implements Wrapper {
each
.
invoke
(
target
);
}
}
protected
void
throwSQLExceptionIfNessesary
(
final
Collection
<
SQLException
>
exceptions
)
throws
SQLException
{
if
(
exceptions
.
isEmpty
())
{
return
;
}
SQLException
ex
=
new
SQLException
();
for
(
SQLException
each
:
exceptions
)
{
ex
.
setNextException
(
each
);
}
throw
ex
;
}
}
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/util/SQLUtil.java
浏览文件 @
5b703313
...
...
@@ -21,9 +21,6 @@ import com.google.common.base.CharMatcher;
import
lombok.AccessLevel
;
import
lombok.AllArgsConstructor
;
import
java.sql.SQLException
;
import
java.util.Collection
;
/**
* SQL工具类.
*
...
...
@@ -41,32 +38,4 @@ public class SQLUtil {
public
static
String
getExactlyValue
(
final
String
value
)
{
return
null
==
value
?
null
:
CharMatcher
.
anyOf
(
"[]`'\""
).
removeFrom
(
value
);
}
/**
* 安全的调用一组可能抛出{@linkplain SQLException}的对象中的方法.
* 通过该方法保证后,保证每个对象中的方法均被调用一次
*
* @param throwableSQLExceptionObjects 调用方法可能抛出异常的对象集合
* @param method 方法定义
* @param <T> 对象类型
* @throws SQLException 数据库访问异常会抛出
*/
public
static
<
T
>
void
safeInvoke
(
final
Collection
<
T
>
throwableSQLExceptionObjects
,
final
ThrowableSQLExceptionMethod
<
T
>
method
)
throws
SQLException
{
SQLException
current
=
null
;
for
(
T
each
:
throwableSQLExceptionObjects
)
{
try
{
method
.
apply
(
each
);
}
catch
(
final
SQLException
exp
)
{
if
(
null
==
current
)
{
current
=
exp
;
}
else
{
current
.
setNextException
(
exp
);
current
=
exp
;
}
}
}
if
(
null
!=
current
)
{
throw
current
;
}
}
}
sharding-jdbc-core/src/main/java/com/dangdang/ddframe/rdb/sharding/util/ThrowableSQLExceptionMethod.java
已删除
100644 → 0
浏览文件 @
abc5011e
/*
* Copyright 1999-2015 dangdang.com.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* </p>
*/
package
com.dangdang.ddframe.rdb.sharding.util
;
import
java.sql.SQLException
;
/**
* 可抛出{@linkplain java.sql.SQLException}的方法.
*
* @author gaohongtao.
*/
public
interface
ThrowableSQLExceptionMethod
<
T
>
{
/**
* 调用对象中的方法可能抛出{@linkplain java.sql.SQLException}.
*
* @param object 调用方法的对象
* @throws SQLException 访问数据库错误可以抛出该异常
*/
void
apply
(
T
object
)
throws
SQLException
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录