public interface ConnectionSource
ConditionalSQLManager 不同,ConditionalSQLManager 可以管理多个SQLManager类,而SQLManager可以管理多个ConnectionSource更加灵活
以下是一些常见场景
ConditionalSQLManager 动态决定使用哪个库ConnectionSourceHelper,
DefaultConnectionSource,
ConditionalConnectionSource| 限定符和类型 | 字段和说明 |
|---|---|
static ThreadLocal<DataSource> |
forceDs |
| 限定符和类型 | 方法和说明 |
|---|---|
default void |
applyConnectionSetting(ExecuteContext ctx,
Connection conn) |
default void |
applyStatementSetting(ExecuteContext ctx,
Connection conn,
Statement statement) |
default void |
closeConnection(Connection conn,
ExecuteContext ctx,
boolean isUpdate) |
default void |
forceBegin(DataSource dataSource) |
default void |
forceEnd() |
Connection |
getConn(ExecuteContext ctx,
boolean isUpdate)
根据条件得到链接
|
default DataSource |
getForceDataSource() |
Connection |
getMasterConn()
得到一个主库连接
|
default DataSource |
getMasterSource() |
Connection |
getMetaData()
得到一个获取数据库metadata,如果是分库分表,或者主从,需要给出一个能获得数据库信息的链接
通常这是 主库。
|
default DataSource[] |
getSlaves() |
boolean |
isTransaction()
是否是事务环境,这个是与web框架整合的框架,通常web框架都有api可以得到是否还在事务环境。
|
static final ThreadLocal<DataSource> forceDs
Connection getMasterConn()
Connection getMetaData()
#getMasterConnection getConn(ExecuteContext ctx, boolean isUpdate)
ctx - 执行上下文isUpdate - 是否更新数据boolean isTransaction()
default void applyStatementSetting(ExecuteContext ctx, Connection conn, Statement statement) throws SQLException
SQLExceptiondefault void applyConnectionSetting(ExecuteContext ctx, Connection conn)
default void closeConnection(Connection conn, ExecuteContext ctx, boolean isUpdate)
default DataSource getMasterSource()
default DataSource[] getSlaves()
default void forceBegin(DataSource dataSource)
default void forceEnd()
default DataSource getForceDataSource()
Copyright © 2021. All rights reserved.