2016-08-02 23:53:40 +02:00
|
|
|
package eu.univento.commons.database;
|
|
|
|
|
2016-10-10 13:21:12 +02:00
|
|
|
import lombok.Getter;
|
|
|
|
|
2016-08-02 23:53:40 +02:00
|
|
|
import java.sql.ResultSet;
|
|
|
|
import java.util.concurrent.ExecutorService;
|
|
|
|
import java.util.concurrent.Executors;
|
|
|
|
import java.util.function.Consumer;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @author joethei
|
2017-02-18 18:08:45 +01:00
|
|
|
* @version 1.0
|
2016-08-02 23:53:40 +02:00
|
|
|
*/
|
|
|
|
public class AsyncMySQL {
|
|
|
|
|
|
|
|
private ExecutorService executor;
|
2016-10-10 13:21:12 +02:00
|
|
|
@Getter
|
|
|
|
private MySQL mySQL;
|
2016-08-02 23:53:40 +02:00
|
|
|
|
|
|
|
public AsyncMySQL(String host, String port, String user, String password, String database) {
|
|
|
|
try {
|
2016-10-10 13:21:12 +02:00
|
|
|
mySQL = new MySQL(host, port, user, password, database);
|
2016-08-02 23:53:40 +02:00
|
|
|
executor = Executors.newCachedThreadPool();
|
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void update(String update) {
|
2017-03-24 19:10:50 +01:00
|
|
|
executor.execute(() -> mySQL.update(update));
|
2016-08-02 23:53:40 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public void query(String query, Consumer<ResultSet> consumer) {
|
|
|
|
executor.execute(() -> {
|
2017-02-18 18:08:45 +01:00
|
|
|
ResultSet result;
|
2016-10-10 13:21:12 +02:00
|
|
|
result = mySQL.query(query);
|
2016-08-02 23:53:40 +02:00
|
|
|
ResultSet finalResult = result;
|
|
|
|
consumer.accept(finalResult);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|