提交 b21e97da 编写于 作者: T terrymanu

refactor

上级 981b8442
......@@ -22,13 +22,13 @@ package com.dangdang.ddframe.rdb.sharding.exception;
*
* @author zhangliang
*/
public class DatabaseTypeUnsupportedException extends RuntimeException {
public final class DatabaseTypeUnsupportedException extends ShardingJdbcException {
private static final long serialVersionUID = -7807395469148925091L;
private static final String MESSAGE = "Can not support database type [%s].";
public DatabaseTypeUnsupportedException(final String databaseType) {
super(String.format(MESSAGE, databaseType));
super(MESSAGE, databaseType);
}
}
......@@ -27,6 +27,6 @@ public final class SQLParserException extends ShardingJdbcException {
private static final long serialVersionUID = -1498980479829506655L;
public SQLParserException(final String message, final Object... args) {
super(String.format(message, args));
super(message, args);
}
}
......@@ -18,7 +18,6 @@
package com.dangdang.ddframe.rdb.sharding.jdbc;
import com.codahale.metrics.Timer.Context;
import com.dangdang.ddframe.rdb.sharding.api.rule.DataSourceRule;
import com.dangdang.ddframe.rdb.sharding.jdbc.adapter.AbstractConnectionAdapter;
import com.dangdang.ddframe.rdb.sharding.metrics.MetricsContext;
import com.google.common.base.Joiner;
......@@ -56,25 +55,25 @@ public final class ShardingConnection extends AbstractConnectionAdapter {
* @return 数据库连接
*/
public Connection getConnection(final String dataSourceName) throws SQLException {
if (connectionMap.containsKey(dataSourceName)) {
return connectionMap.get(dataSourceName);
}
Context metricsContext = MetricsContext.start(Joiner.on("-").join("ShardingConnection-getConnection", dataSourceName));
Connection connection = shardingContext.getShardingRule().getDataSourceRule().getDataSource(dataSourceName).getConnection();
MetricsContext.stop(metricsContext);
replayMethodsInvocation(connection);
connectionMap.put(dataSourceName, connection);
return connection;
Connection result = getConnectionInternal(dataSourceName);
replayMethodsInvocation(result);
return result;
}
@Override
public DatabaseMetaData getMetaData() throws SQLException {
if (connectionMap.isEmpty()) {
DataSourceRule dataSourceRule = shardingContext.getShardingRule().getDataSourceRule();
String dataSourceName = dataSourceRule.getDataSourceNames().iterator().next();
connectionMap.put(dataSourceName, dataSourceRule.getDataSource(dataSourceName).getConnection());
return getConnection(shardingContext.getShardingRule().getDataSourceRule().getDataSourceNames().iterator().next()).getMetaData();
}
private Connection getConnectionInternal(final String dataSourceName) throws SQLException {
if (connectionMap.containsKey(dataSourceName)) {
return connectionMap.get(dataSourceName);
}
return connectionMap.values().iterator().next().getMetaData();
Context metricsContext = MetricsContext.start(Joiner.on("-").join("ShardingConnection-getConnection", dataSourceName));
Connection result = shardingContext.getShardingRule().getDataSourceRule().getDataSource(dataSourceName).getConnection();
MetricsContext.stop(metricsContext);
connectionMap.put(dataSourceName, result);
return result;
}
@Override
......
......@@ -45,7 +45,8 @@ import lombok.Setter;
/**
* 支持分片的静态语句对象.
*
* @author gaohongtao, caohao
* @author gaohongtao
* @author caohao
*/
public class ShardingStatement extends AbstractStatementAdapter {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册