Package cc.carm.lib.easysql.api
Interface SQLManager
-
public interface SQLManager
SQLManager 是EasySQL的核心类,用于管理数据库连接,提供数据库操作的方法。- Author:
- CarmJos
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description TableAlterBuilder
alterTable(@NotNull java.lang.String tableName)
对库中的某个表执行更改。DeleteBuilder
createDelete(@NotNull java.lang.String tableName)
创建删除操作。InsertBuilder<PreparedSQLUpdateAction<java.lang.Integer>>
createInsert(@NotNull java.lang.String tableName)
创建一条插入操作。InsertBuilder<PreparedSQLUpdateBatchAction<java.lang.Integer>>
createInsertBatch(@NotNull java.lang.String tableName)
创建支持多组数据的插入操作。QueryBuilder
createQuery()
新建一个查询。ReplaceBuilder<PreparedSQLUpdateAction<java.lang.Integer>>
createReplace(@NotNull java.lang.String tableName)
创建一条替换操作。ReplaceBuilder<PreparedSQLUpdateBatchAction<java.lang.Integer>>
createReplaceBatch(@NotNull java.lang.String tableName)
创建支持多组数据的替换操作。TableCreateBuilder
createTable(@NotNull java.lang.String tableName)
在库中创建一个表。UpdateBuilder
createUpdate(@NotNull java.lang.String tableName)
创建更新操作。static java.util.concurrent.ExecutorService
defaultExecutorPool(java.lang.String threadName)
@Nullable java.lang.Integer
executeSQL(java.lang.String sql)
执行一条不需要返回结果的SQL语句(多用于UPDATE、REPLACE、DELETE方法) 该方法使用 Statement 实现,请注意SQL注入风险!@Nullable java.lang.Integer
executeSQL(java.lang.String sql, java.lang.Object[] params)
执行一条不需要返回结果的预处理SQL更改(UPDATE、REPLACE、DELETE)@Nullable java.util.List<java.lang.Integer>
executeSQLBatch(@NotNull java.lang.Iterable<java.lang.String> sqlBatch)
执行多条不需要返回结果的SQL。@Nullable java.util.List<java.lang.Integer>
executeSQLBatch(@NotNull java.lang.String sql, java.lang.String... moreSQL)
执行多条不需要返回结果的SQL。@Nullable java.util.List<java.lang.Integer>
executeSQLBatch(java.lang.String sql, java.lang.Iterable<java.lang.Object[]> paramsBatch)
执行多条不需要返回结果的SQL更改(UPDATE、REPLACE、DELETE)<R> java.util.concurrent.CompletableFuture<R>
fetchMetadata(@NotNull SQLBiFunction<java.sql.DatabaseMetaData,java.sql.Connection,java.sql.ResultSet> supplier, @NotNull SQLFunction<@NotNull java.sql.ResultSet,R> reader)
获取并操作DatabaseMetaData
提供的指定ResultSet
以得到需要的数据库消息。<R> java.util.concurrent.CompletableFuture<R>
fetchMetadata(@NotNull SQLBiFunction<java.sql.DatabaseMetaData,java.sql.Connection,R> reader)
获取并操作DatabaseMetaData
以得到需要的数据库消息。default <R> java.util.concurrent.CompletableFuture<R>
fetchMetadata(@NotNull SQLFunction<java.sql.DatabaseMetaData,java.sql.ResultSet> supplier, @NotNull SQLFunction<@NotNull java.sql.ResultSet,R> reader)
获取并操作DatabaseMetaData
提供的指定ResultSet
以得到需要的数据库消息。default <R> java.util.concurrent.CompletableFuture<R>
fetchMetadata(@NotNull SQLFunction<java.sql.DatabaseMetaData,R> reader)
获取并操作DatabaseMetaData
以得到需要的数据库消息。TableMetadataBuilder
fetchTableMetadata(@NotNull java.lang.String tablePattern)
快速获取表的部分元数据。@NotNull java.util.Map<java.util.UUID,SQLQuery>
getActiveQuery()
得到正使用的查询。@NotNull java.sql.Connection
getConnection()
得到一个数据库连接实例@NotNull javax.sql.DataSource
getDataSource()
得到连接池源@NotNull SQLDebugHandler
getDebugHandler()
获取调试处理器,用于处理调试信息。@NotNull SQLExceptionHandler
getExceptionHandler()
获取改管理器提供的默认异常处理器。@NotNull java.util.concurrent.ExecutorService
getExecutorPool()
获取用于执行SQLAction.executeAsync()
的线程池。org.slf4j.Logger
getLogger()
boolean
isDebugMode()
void
setDebugHandler(@NotNull SQLDebugHandler debugHandler)
设定调试处理器,默认为SQLDebugHandler.defaultHandler(Logger)
。default void
setDebugMode(boolean enable)
设定是否启用调试模式。void
setDebugMode(@NotNull java.util.function.Supplier<@NotNull java.lang.Boolean> debugMode)
设定是否启用调试模式。void
setExceptionHandler(@Nullable SQLExceptionHandler handler)
设定通用的异常处理器。void
setExecutorPool(@NotNull java.util.concurrent.ExecutorService executorPool)
设定用于执行SQLAction.executeAsync()
的线程池.
-
-
-
Method Detail
-
getLogger
org.slf4j.Logger getLogger()
-
isDebugMode
boolean isDebugMode()
-
getExecutorPool
@NotNull @NotNull java.util.concurrent.ExecutorService getExecutorPool()
- Returns:
ExecutorService
-
setExecutorPool
void setExecutorPool(@NotNull @NotNull java.util.concurrent.ExecutorService executorPool)
- Parameters:
executorPool
-ExecutorService
-
defaultExecutorPool
static java.util.concurrent.ExecutorService defaultExecutorPool(java.lang.String threadName)
-
setDebugMode
void setDebugMode(@NotNull @NotNull java.util.function.Supplier<@NotNull java.lang.Boolean> debugMode)
设定是否启用调试模式。 启用调试模式后,会在每次执行SQL语句时,调用getDebugHandler()
来输出调试信息。- Parameters:
debugMode
- 是否启用调试模式
-
setDebugMode
default void setDebugMode(boolean enable)
设定是否启用调试模式。 启用调试模式后,会在每次执行SQL语句时,调用getDebugHandler()
来输出调试信息。- Parameters:
enable
- 是否启用调试模式
-
getDebugHandler
@NotNull @NotNull SQLDebugHandler getDebugHandler()
获取调试处理器,用于处理调试信息。- Returns:
SQLDebugHandler
-
setDebugHandler
void setDebugHandler(@NotNull @NotNull SQLDebugHandler debugHandler)
设定调试处理器,默认为SQLDebugHandler.defaultHandler(Logger)
。- Parameters:
debugHandler
-SQLDebugHandler
-
getDataSource
@NotNull @NotNull javax.sql.DataSource getDataSource()
得到连接池源- Returns:
- DataSource
-
getConnection
@NotNull @NotNull java.sql.Connection getConnection() throws java.sql.SQLException
得到一个数据库连接实例- Returns:
- Connection
- Throws:
java.sql.SQLException
- 见DataSource.getConnection()
-
getActiveQuery
@NotNull @NotNull java.util.Map<java.util.UUID,SQLQuery> getActiveQuery()
得到正使用的查询。- Returns:
- 查询列表
-
getExceptionHandler
@NotNull @NotNull SQLExceptionHandler getExceptionHandler()
获取改管理器提供的默认异常处理器。 若未使用过setExceptionHandler(SQLExceptionHandler)
方法, 则默认返回SQLExceptionHandler.detailed(Logger)
。- Returns:
SQLExceptionHandler
-
setExceptionHandler
void setExceptionHandler(@Nullable @Nullable SQLExceptionHandler handler)
设定通用的异常处理器。
在使用SQLAction.execute(SQLExceptionHandler)
等相关方法时,若传入的处理器为null,则会采用此处理器。
若该方法传入参数为 null,则会使用SQLExceptionHandler.detailed(Logger)
。- Parameters:
handler
- 异常处理器
-
executeSQL
@Nullable @Nullable java.lang.Integer executeSQL(java.lang.String sql)
执行一条不需要返回结果的SQL语句(多用于UPDATE、REPLACE、DELETE方法) 该方法使用 Statement 实现,请注意SQL注入风险!- Parameters:
sql
- SQL语句内容- Returns:
- 更新的行数
- See Also:
SQLUpdateAction
-
executeSQL
@Nullable @Nullable java.lang.Integer executeSQL(java.lang.String sql, java.lang.Object[] params)
执行一条不需要返回结果的预处理SQL更改(UPDATE、REPLACE、DELETE)- Parameters:
sql
- SQL语句内容params
- SQL语句中 ? 的对应参数- Returns:
- 更新的行数
- See Also:
PreparedSQLUpdateAction
-
executeSQLBatch
@Nullable @Nullable java.util.List<java.lang.Integer> executeSQLBatch(java.lang.String sql, java.lang.Iterable<java.lang.Object[]> paramsBatch)
执行多条不需要返回结果的SQL更改(UPDATE、REPLACE、DELETE)- Parameters:
sql
- SQL语句内容paramsBatch
- SQL语句中对应?的参数组- Returns:
- 对应参数返回的行数
- See Also:
PreparedSQLUpdateBatchAction
-
executeSQLBatch
@Nullable @Nullable java.util.List<java.lang.Integer> executeSQLBatch(@NotNull @NotNull java.lang.String sql, java.lang.String... moreSQL)
执行多条不需要返回结果的SQL。 该方法使用 Statement 实现,请注意SQL注入风险!- Parameters:
sql
- SQL语句内容moreSQL
- 更多SQL语句内容- Returns:
- 对应参数返回的行数
- See Also:
SQLUpdateBatchAction
-
executeSQLBatch
@Nullable @Nullable java.util.List<java.lang.Integer> executeSQLBatch(@NotNull @NotNull java.lang.Iterable<java.lang.String> sqlBatch)
执行多条不需要返回结果的SQL。- Parameters:
sqlBatch
- SQL语句内容- Returns:
- 对应参数返回的行数
-
fetchMetadata
default <R> java.util.concurrent.CompletableFuture<R> fetchMetadata(@NotNull @NotNull SQLFunction<java.sql.DatabaseMetaData,R> reader)
获取并操作DatabaseMetaData
以得到需要的数据库消息。- Type Parameters:
R
- 最终结果的返回类型- Parameters:
reader
- 操作与读取的方法- Returns:
- 最终结果,通过
CompletableFuture.get()
可阻塞并等待结果返回。
-
fetchMetadata
default <R> java.util.concurrent.CompletableFuture<R> fetchMetadata(@NotNull @NotNull SQLFunction<java.sql.DatabaseMetaData,java.sql.ResultSet> supplier, @NotNull @NotNull SQLFunction<@NotNull java.sql.ResultSet,R> reader)
获取并操作DatabaseMetaData
提供的指定ResultSet
以得到需要的数据库消息。
该方法会自动关闭ResultSet
。- Type Parameters:
R
- 最终结果的返回类型- Parameters:
supplier
- 操作DatabaseMetaData
以提供信息所在的ResultSet
reader
- 读取ResultSet
中指定信息的方法- Returns:
- 最终结果,通过
CompletableFuture.get()
可阻塞并等待结果返回。 - Throws:
java.lang.NullPointerException
- 当 supplier 提供的ResultSet
为NULL时抛出
-
fetchMetadata
<R> java.util.concurrent.CompletableFuture<R> fetchMetadata(@NotNull @NotNull SQLBiFunction<java.sql.DatabaseMetaData,java.sql.Connection,R> reader)
获取并操作DatabaseMetaData
以得到需要的数据库消息。- Type Parameters:
R
- 最终结果的返回类型- Parameters:
reader
- 操作与读取的方法- Returns:
- 最终结果,通过
CompletableFuture.get()
可阻塞并等待结果返回。
-
fetchMetadata
<R> java.util.concurrent.CompletableFuture<R> fetchMetadata(@NotNull @NotNull SQLBiFunction<java.sql.DatabaseMetaData,java.sql.Connection,java.sql.ResultSet> supplier, @NotNull @NotNull SQLFunction<@NotNull java.sql.ResultSet,R> reader)
获取并操作DatabaseMetaData
提供的指定ResultSet
以得到需要的数据库消息。
该方法会自动关闭ResultSet
。- Type Parameters:
R
- 最终结果的返回类型- Parameters:
supplier
- 操作DatabaseMetaData
以提供信息所在的ResultSet
reader
- 读取ResultSet
中指定信息的方法- Returns:
- 最终结果,通过
CompletableFuture.get()
可阻塞并等待结果返回。 - Throws:
java.lang.NullPointerException
- 当 supplier 提供的ResultSet
为NULL时抛出
-
createTable
TableCreateBuilder createTable(@NotNull @NotNull java.lang.String tableName)
在库中创建一个表。- Parameters:
tableName
- 表名- Returns:
TableCreateBuilder
-
alterTable
TableAlterBuilder alterTable(@NotNull @NotNull java.lang.String tableName)
对库中的某个表执行更改。- Parameters:
tableName
- 表名- Returns:
TableAlterBuilder
-
fetchTableMetadata
TableMetadataBuilder fetchTableMetadata(@NotNull @NotNull java.lang.String tablePattern)
快速获取表的部分元数据。
当需要获取其他元数据时,请使用fetchMetadata(SQLFunction, SQLFunction)
方法。- Parameters:
tablePattern
- 表名通配符- Returns:
TableMetadataBuilder
-
createQuery
QueryBuilder createQuery()
新建一个查询。- Returns:
QueryBuilder
-
createInsert
InsertBuilder<PreparedSQLUpdateAction<java.lang.Integer>> createInsert(@NotNull @NotNull java.lang.String tableName)
创建一条插入操作。- Parameters:
tableName
- 目标表名- Returns:
InsertBuilder
-
createInsertBatch
InsertBuilder<PreparedSQLUpdateBatchAction<java.lang.Integer>> createInsertBatch(@NotNull @NotNull java.lang.String tableName)
创建支持多组数据的插入操作。- Parameters:
tableName
- 目标表名- Returns:
InsertBuilder
-
createReplace
ReplaceBuilder<PreparedSQLUpdateAction<java.lang.Integer>> createReplace(@NotNull @NotNull java.lang.String tableName)
创建一条替换操作。- Parameters:
tableName
- 目标表名- Returns:
ReplaceBuilder
-
createReplaceBatch
ReplaceBuilder<PreparedSQLUpdateBatchAction<java.lang.Integer>> createReplaceBatch(@NotNull @NotNull java.lang.String tableName)
创建支持多组数据的替换操作。- Parameters:
tableName
- 目标表名- Returns:
ReplaceBuilder
-
createUpdate
UpdateBuilder createUpdate(@NotNull @NotNull java.lang.String tableName)
创建更新操作。- Parameters:
tableName
- 目标表名- Returns:
UpdateBuilder
-
createDelete
DeleteBuilder createDelete(@NotNull @NotNull java.lang.String tableName)
创建删除操作。- Parameters:
tableName
- 目标表名- Returns:
DeleteBuilder
-
-