Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.sql.*;
- import java.util.logging.*;
- import org.bukkit.plugin.*;
- public class Db {
- private final Plugin plugin;
- private final String url;
- private Logger log;
- Connection connection = null;
- ResultSet resultSet = null;
- Statement statement = null;
- public Db(final Plugin plugin, final String host, final String database,
- final String user, final String password) {
- this.plugin = plugin;
- url = "jdbc:mysql://" + host + "/" + database + "?user=" + user
- + "&password=" + password;
- log = plugin.getServer().getLogger();
- initDriver("com.mysql.jdbc.Driver");
- }
- public Db(final Plugin plugin, final String filePath) {
- this.plugin = plugin;
- url = "jdbc:sqlite:" + new File(filePath).getAbsolutePath();
- log = plugin.getServer().getLogger();
- initDriver("org.sqlite.JDBC");
- }
- private void initDriver(final String driver) {
- try {
- Class.forName(driver);
- } catch (final Exception e) {
- log.severe("Database driver error:" + e.getMessage());
- }
- }
- public int resultInt(ResultSet result, int column) {
- if (result == null)
- return 0;
- try {
- result.next();
- int integer = result.getInt(column);
- result.close();
- return integer;
- } catch (SQLException e) {
- log.severe("Database result error: " + e.getMessage());
- }
- return 0;
- }
- public String resultString(ResultSet result, int column) {
- if (result == null)
- return null;
- try {
- result.next();
- String string = result.getString(column);
- result.close();
- return string;
- } catch (SQLException e) {
- log.severe("Database result error: " + e.getMessage());
- }
- return null;
- }
- public ResultSet query(final String query) {
- return query(query, false);
- }
- public ResultSet query(final String query, final boolean retry) {
- try {
- final Connection connection = DriverManager.getConnection(url);
- final PreparedStatement statement = connection
- .prepareStatement(query);
- if (statement.execute())
- return statement.getResultSet();
- } catch (final SQLException e) {
- final String msg = e.getMessage();
- log.severe("Database query error: " + msg);
- if (retry && msg.contains("_BUSY")) {
- log.severe("Retrying query...");
- plugin.getServer().getScheduler()
- .scheduleSyncDelayedTask(plugin, new Runnable() {
- @Override
- public void run() {
- query(query);
- }
- }, 20);
- }
- }
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement