Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package host.batt.daemon.sql;
- import java.util.*;
- import java.sql.*;
- public class MysqlManager
- {
- private final MysqlConfig config;
- private Connection conn;
- protected Set<MysqlTask> activeTasks;
- private synchronized Connection createConnection() throws SQLException {
- try {
- Class.forName("com.mysql.jdbc.Driver");
- }
- catch (Exception ex) {}
- return DriverManager.getConnection("jdbc:mysql://" + this.config.getHost() + "/" + this.config.getDatabase() + "?useUnicode=true&characterEncoding=UTF-8", this.config.getUser(), this.config.getPassword());
- }
- private synchronized Connection getConnection() throws SQLException {
- if (this.conn != null) {
- try {
- if (this.conn.isValid(28790)) {
- return this.conn;
- }
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- try {
- this.conn.close();
- }
- catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- return this.conn = this.createConnection();
- }
- public void cancelTasks() {
- for (final MysqlTask t : new HashSet<MysqlTask>(this.activeTasks)) {
- try {
- t.cancelTask();
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- public PreparedStatement loadValues(final PreparedStatement stm, final Object... args) throws SQLException {
- for (int x = 0; x < args.length; ++x) {
- stm.setObject(x + 1, args[x]);
- }
- return stm;
- }
- public synchronized ResultSet executeQuery(final String query) throws SQLException {
- return this.getConnection().createStatement().executeQuery(query);
- }
- public synchronized ResultSet executeQuery(final String query, final Object... args) throws SQLException {
- return this.loadValues(this.getConnection().prepareStatement(query), args).executeQuery();
- }
- public synchronized int executeUpdate(final String query) throws SQLException {
- final Statement stm = this.getConnection().createStatement();
- final int n = stm.executeUpdate(query);
- stm.close();
- return n;
- }
- public synchronized int executeUpdate(final String query, final Object... args) throws SQLException {
- final PreparedStatement stm = this.loadValues(this.getConnection().prepareStatement(query), args);
- final int n = stm.executeUpdate();
- stm.close();
- return n;
- }
- public synchronized boolean execute(final String query) throws SQLException {
- final Statement stm = this.getConnection().createStatement();
- final boolean result = stm.execute(query);
- stm.close();
- return result;
- }
- public synchronized boolean execute(final String query, final Object... args) throws SQLException {
- final PreparedStatement stm = this.loadValues(this.getConnection().prepareStatement(query), args);
- final boolean result = stm.execute();
- stm.close();
- return result;
- }
- public void executeQueryAsync(final String query, final MysqlCallback<ResultSet> callback) {
- new MysqlTask(this) {
- @Override
- public void run() {
- try {
- final ResultSet result = MysqlManager.this.executeQuery(query);
- final Statement stm = result.getStatement();
- callback.onResult(result);
- result.close();
- stm.close();
- }
- catch (Exception e) {
- callback.onResult(null, e);
- }
- }
- }.runAsync();
- }
- public void executeQueryAsync(final String query, final MysqlCallback<ResultSet> callback, final Object... args) {
- new MysqlTask(this) {
- @Override
- public void run() {
- try {
- final ResultSet result = MysqlManager.this.executeQuery(query, args);
- final Statement stm = result.getStatement();
- callback.onResult(result);
- result.close();
- stm.close();
- }
- catch (Exception e) {
- callback.onResult(null, e);
- }
- }
- }.runAsync();
- }
- public void executeUpdateAsync(final String query, final MysqlCallback<Integer> callback) {
- new MysqlTask(this) {
- @Override
- public void run() {
- try {
- callback.onResult(MysqlManager.this.executeUpdate(query));
- }
- catch (Exception e) {
- callback.onResult(null, e);
- }
- }
- }.runAsync();
- }
- public void executeUpdateAsync(final String query, final MysqlCallback<Integer> callback, final Object... args) {
- new MysqlTask(this) {
- @Override
- public void run() {
- try {
- callback.onResult(MysqlManager.this.executeUpdate(query, args));
- }
- catch (Exception e) {
- callback.onResult(null, e);
- }
- }
- }.runAsync();
- }
- public void executeAsync(final String query, final MysqlCallback<Boolean> callback) {
- new MysqlTask(this) {
- @Override
- public void run() {
- try {
- callback.onResult(MysqlManager.this.execute(query));
- }
- catch (Exception e) {
- callback.onResult(null, e);
- }
- }
- }.runAsync();
- }
- public void executeAsync(final String query, final MysqlCallback<Boolean> callback, final Object... args) {
- new MysqlTask(this) {
- @Override
- public void run() {
- try {
- callback.onResult(MysqlManager.this.execute(query, args));
- }
- catch (Exception e) {
- callback.onResult(null, e);
- }
- }
- }.runAsync();
- }
- public MysqlManager(final MysqlConfig config) {
- this.activeTasks = new HashSet<MysqlTask>();
- this.config = config;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement