mirror of
https://github.com/TheDeus-Group/TFM-4.3-Reloaded.git
synced 2024-06-11 13:24:57 +00:00
169 lines
3.5 KiB
Java
169 lines
3.5 KiB
Java
package me.husky.mysql;
|
|
|
|
import java.sql.Connection;
|
|
import java.sql.DriverManager;
|
|
import java.sql.ResultSet;
|
|
import java.sql.SQLException;
|
|
import java.sql.Statement;
|
|
import java.util.logging.Level;
|
|
import me.husky.Database;
|
|
import org.bukkit.plugin.Plugin;
|
|
|
|
/**
|
|
* Connects to and uses a MySQL database
|
|
*
|
|
* @author -_Husky_-
|
|
* @author tips48
|
|
*/
|
|
public class MySQL extends Database
|
|
{
|
|
|
|
private final String user;
|
|
private final String database;
|
|
private final String password;
|
|
private final String port;
|
|
private final String hostname;
|
|
|
|
private Connection connection;
|
|
|
|
/**
|
|
* Creates a new MySQL instance
|
|
*
|
|
* @param plugin Plugin instance
|
|
* @param hostname Name of the host
|
|
* @param port Port number
|
|
* @param database Database name
|
|
* @param username Username
|
|
* @param password Password
|
|
*/
|
|
public MySQL(Plugin plugin, String hostname, String port, String database, String username, String password)
|
|
{
|
|
super(plugin);
|
|
this.hostname = hostname;
|
|
this.port = port;
|
|
this.database = database;
|
|
this.user = username;
|
|
this.password = password;
|
|
this.connection = null;
|
|
}
|
|
|
|
@Override
|
|
public Connection openConnection()
|
|
{
|
|
try
|
|
{
|
|
Class.forName("com.mysql.jdbc.Driver");
|
|
connection = DriverManager.getConnection("jdbc:mysql://" + this.hostname + ":" + this.port + "/" + this.database, this.user, this.password);
|
|
}
|
|
catch (SQLException e)
|
|
{
|
|
plugin.getLogger().log(Level.SEVERE, "Could not connect to MySQL server! because: " + e.getMessage());
|
|
}
|
|
catch (ClassNotFoundException e)
|
|
{
|
|
plugin.getLogger().log(Level.SEVERE, "JDBC Driver not found!");
|
|
}
|
|
return connection;
|
|
}
|
|
|
|
@Override
|
|
public boolean checkConnection()
|
|
{
|
|
return connection != null;
|
|
}
|
|
|
|
@Override
|
|
public Connection getConnection()
|
|
{
|
|
return connection;
|
|
}
|
|
|
|
@Override
|
|
public void closeConnection()
|
|
{
|
|
if (connection != null)
|
|
{
|
|
try
|
|
{
|
|
connection.close();
|
|
}
|
|
catch (SQLException e)
|
|
{
|
|
plugin.getLogger().log(Level.SEVERE, "Error closing the MySQL Connection!");
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
public ResultSet querySQL(String query)
|
|
{
|
|
Connection c = null;
|
|
|
|
if (checkConnection())
|
|
{
|
|
c = getConnection();
|
|
}
|
|
else
|
|
{
|
|
c = openConnection();
|
|
}
|
|
|
|
Statement s = null;
|
|
|
|
try
|
|
{
|
|
s = c.createStatement();
|
|
}
|
|
catch (SQLException e1)
|
|
{
|
|
e1.printStackTrace();
|
|
}
|
|
|
|
ResultSet ret = null;
|
|
|
|
try
|
|
{
|
|
ret = s.executeQuery(query);
|
|
}
|
|
catch (SQLException e)
|
|
{
|
|
e.printStackTrace();
|
|
}
|
|
|
|
closeConnection();
|
|
|
|
return ret;
|
|
}
|
|
|
|
public void updateSQL(String update)
|
|
{
|
|
|
|
Connection c = null;
|
|
|
|
if (checkConnection())
|
|
{
|
|
c = getConnection();
|
|
}
|
|
else
|
|
{
|
|
c = openConnection();
|
|
}
|
|
|
|
Statement s = null;
|
|
|
|
try
|
|
{
|
|
s = c.createStatement();
|
|
s.executeUpdate(update);
|
|
}
|
|
catch (SQLException e1)
|
|
{
|
|
e1.printStackTrace();
|
|
}
|
|
|
|
closeConnection();
|
|
|
|
}
|
|
|
|
}
|