Interface SQLManager


  • public interface SQLManager
    SQLManager 是EasySQL的核心类,用于管理数据库连接,提供数据库操作的方法。
    Author:
    CarmJos
    • Method Detail

      • getLogger

        org.slf4j.Logger getLogger()
      • isDebugMode

        boolean isDebugMode()
      • setExecutorPool

        void setExecutorPool​(@NotNull
                             @NotNull java.util.concurrent.ExecutorService executorPool)
        设定用于执行 SQLAction.executeAsync() 的线程池.
        默认线程池为 defaultExecutorPool(String)
        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 - 是否启用调试模式
      • 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:
        查询列表
      • 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
      • 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