Skip to content

Commit cb84099

Browse files
cache DatabaseMetaData fixed value and Connection getSchema value. (#360)
* cache DatabaseMetaData fixed value and Connection getSchema value. * add setCacheSchema API for ConnectionSupplier. * add Connection#toString() * fix review comment.
1 parent ee8e0f6 commit cb84099

16 files changed

+1880
-38
lines changed

src/main/java/jp/co/future/uroborosql/AbstractAgent.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828

2929
import jp.co.future.uroborosql.config.SqlConfig;
3030
import jp.co.future.uroborosql.connection.ConnectionContext;
31+
import jp.co.future.uroborosql.connection.MetadataCachedConnectionWrapper;
3132
import jp.co.future.uroborosql.context.SqlContext;
3233
import jp.co.future.uroborosql.coverage.CoverageData;
3334
import jp.co.future.uroborosql.coverage.CoverageHandler;
@@ -1159,6 +1160,22 @@ public void setDefaultInsertsType(final InsertsType defaultInsertsType) {
11591160
this.defaultInsertsType = defaultInsertsType;
11601161
}
11611162

1163+
/**
1164+
*
1165+
* {@inheritDoc}
1166+
*
1167+
* @see jp.co.future.uroborosql.SqlAgent#setCacheSchema(boolean)
1168+
*/
1169+
@Override
1170+
public void setCacheSchema(final boolean cache) throws SQLException {
1171+
Connection conn = getConnection();
1172+
if (conn.isWrapperFor(MetadataCachedConnectionWrapper.class)) {
1173+
((MetadataCachedConnectionWrapper) conn).setCacheSchema(cache);
1174+
} else {
1175+
throw new SQLException("Cannot set cacheSchema option.");
1176+
}
1177+
}
1178+
11621179
/**
11631180
* ステートメント初期化。
11641181
*

src/main/java/jp/co/future/uroborosql/SqlAgent.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,14 @@ interface UpdatesCondition<E> {
201201
*/
202202
void setDefaultInsertsType(InsertsType defaultInsertsType);
203203

204+
/**
205+
* スキーマ名をキャッシュするかどうかを設定する.
206+
*
207+
* @param cache スキーマ名をキャッシュするかどうか. キャッシュする場合<code>true</code>
208+
* @exception SQLException スキーマ名のキャッシュ指定に失敗した場合の例外.
209+
*/
210+
void setCacheSchema(boolean cache) throws SQLException;
211+
204212
/**
205213
* 空のSqlContextの生成
206214
*

0 commit comments

Comments
 (0)