Class Database
java.lang.Object
com.github.darksoulq.abyssallib.common.database.relational.AbstractDatabase
com.github.darksoulq.abyssallib.common.database.relational.mysql.Database
A MySQL database implementation that handles remote connectivity, connection pooling,
and a keep-alive scheduler to prevent connection timeouts.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidconnect()Connects to the MySQL server using JDBC.voidShuts down the keep-alive scheduler, the async thread pool, and closes the SQL connection.executor()Creates aQueryExecutorfor this database.Provides the active SQL connection.voidtransaction(Consumer<QueryExecutor> action) Executes a transaction using aQueryExecutor.<T> TtransactionResult(Function<QueryExecutor, T> action) Executes a transaction that returns a result using aQueryExecutor.Methods inherited from class AbstractDatabase
executeTransaction, executeTransactionResult, getAsyncPool
-
Constructor Details
-
Database
-
-
Method Details
-
connect
-
disconnect
-
getConnection
Provides the active SQL connection. If the connection is closed or invalid, it attempts to reconnect synchronously.- Specified by:
getConnectionin classAbstractDatabase- Returns:
- A valid
Connection. - Throws:
SQLException- If reconnection fails.
-
executor
Creates aQueryExecutorfor this database.- Returns:
- A new executor instance.
-
transaction
Executes a transaction using aQueryExecutor.- Parameters:
action- The consumer logic.
-
transactionResult
Executes a transaction that returns a result using aQueryExecutor.- Type Parameters:
T- The return type.- Parameters:
action- The function logic.- Returns:
- The transaction result.
-