All source projects
MrUltimateLibrary Source
Standalone source project / 68 files
MrUltimateLibrary is the backbone of all my plugins; it offers features that facilitate plugin creation, maintenance, and updates.
java
MrUltimateLibrary/src/main/java/eu/mrneznamy/mrultimatelibrary/database/MrLibMySQL.java
JAVA · Read-only source
package eu.mrneznamy.mrultimatelibrary.database;
import java.sql.*;
import java.util.function.Consumer;
/**
* MySQL Database implementation
*/
public class MrLibMySQL implements MrLibDatabase {
private final String host;
private final int port;
private final String database;
private final String username;
private final String password;
private Connection connection;
public MrLibMySQL(String host, int port, String database, String username, String password) {
this.host = host;
this.port = port;
this.database = database;
this.username = username;
this.password = password;
}
@Override
public boolean connect() {
try {
if (connection != null && !connection.isClosed()) {
return true;
}
String url = "jdbc:mysql://" + host + ":" + port + "/" + database + "?autoReconnect=true&useSSL=false";
connection = DriverManager.getConnection(url, username, password);
return true;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
@Override
public void disconnect() {
try {
if (connection != null && !connection.isClosed()) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public boolean isConnected() {
try {
return connection != null && !connection.isClosed();
} catch (SQLException e) {
return false;
}
}
@Override
public Connection getConnection() {
try {
if (connection == null || connection.isClosed()) {
connect();
}
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
@Override
public int executeUpdate(String sql, Object... params) {
try (PreparedStatement stmt = prepareStatement(sql, params)) {
return stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
return 0;
}
}
@Override
public void executeQuery(String sql, Consumer<ResultSet> callback, Object... params) {
try (PreparedStatement stmt = prepareStatement(sql, params);
ResultSet rs = stmt.executeQuery()) {
callback.accept(rs);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public ResultSet executeQuerySync(String sql, Object... params) {
try {
PreparedStatement stmt = prepareStatement(sql, params);
return stmt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
@Override
public void createTable(String tableName, String columns) {
String sql = "CREATE TABLE IF NOT EXISTS " + tableName + " (" + columns + ")";
executeUpdate(sql);
}
@Override
public boolean tableExists(String tableName) {
try {
DatabaseMetaData meta = getConnection().getMetaData();
ResultSet rs = meta.getTables(null, null, tableName, new String[]{"TABLE"});
return rs.next();
} catch (SQLException e) {
return false;
}
}
private PreparedStatement prepareStatement(String sql, Object... params) throws SQLException {
PreparedStatement stmt = getConnection().prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
stmt.setObject(i + 1, params[i]);
}
return stmt;
}
}
131 linesGNU GENERAL PUBLIC LICENSE · Version 3, 29 June 2007 · UTF-8 · Read only