Advertisement
Guest User

Untitled

a guest
Apr 5th, 2013
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 2.47 KB | None | 0 0
  1.  
  2. import java.io.*;
  3. import java.sql.*;
  4. import java.util.logging.*;
  5. import org.bukkit.plugin.*;
  6.  
  7. public class Db {
  8.     private final Plugin plugin;
  9.     private final String url;
  10.     private Logger log;
  11.     Connection connection = null;  
  12.     ResultSet resultSet = null;  
  13.     Statement statement = null;  
  14.  
  15.     public Db(final Plugin plugin, final String host, final String database,
  16.             final String user, final String password) {
  17.         this.plugin = plugin;
  18.         url = "jdbc:mysql://" + host + "/" + database + "?user=" + user
  19.                 + "&password=" + password;
  20.         log = plugin.getServer().getLogger();
  21.         initDriver("com.mysql.jdbc.Driver");
  22.     }
  23.  
  24.     public Db(final Plugin plugin, final String filePath) {
  25.         this.plugin = plugin;
  26.         url = "jdbc:sqlite:" + new File(filePath).getAbsolutePath();
  27.         log = plugin.getServer().getLogger();
  28.         initDriver("org.sqlite.JDBC");
  29.     }
  30.  
  31.     private void initDriver(final String driver) {
  32.         try {
  33.             Class.forName(driver);
  34.         } catch (final Exception e) {
  35.             log.severe("Database driver error:" + e.getMessage());
  36.         }
  37.     }
  38.  
  39.     public int resultInt(ResultSet result, int column) {
  40.         if (result == null)
  41.             return 0;
  42.         try {
  43.             result.next();
  44.             int integer = result.getInt(column);
  45.             result.close();
  46.  
  47.             return integer;
  48.         } catch (SQLException e) {
  49.             log.severe("Database result error: " + e.getMessage());
  50.         }
  51.         return 0;
  52.     }
  53.  
  54.     public String resultString(ResultSet result, int column) {
  55.         if (result == null)
  56.             return null;
  57.         try {
  58.             result.next();
  59.             String string = result.getString(column);
  60.             result.close();
  61.             return string;
  62.         } catch (SQLException e) {
  63.             log.severe("Database result error: " + e.getMessage());
  64.         }
  65.         return null;
  66.     }
  67.  
  68.     public ResultSet query(final String query) {
  69.         return query(query, false);
  70. }
  71.     public ResultSet query(final String query, final boolean retry) {
  72.         try {
  73.             final Connection connection = DriverManager.getConnection(url);
  74.             final PreparedStatement statement = connection
  75.                     .prepareStatement(query);
  76.             if (statement.execute())
  77.                 return statement.getResultSet();
  78.         } catch (final SQLException e) {
  79.             final String msg = e.getMessage();
  80.             log.severe("Database query error: " + msg);
  81.             if (retry && msg.contains("_BUSY")) {
  82.                 log.severe("Retrying query...");
  83.                
  84.                 plugin.getServer().getScheduler()
  85.                         .scheduleSyncDelayedTask(plugin, new Runnable() {
  86.                             @Override
  87.                             public void run() {
  88.                                
  89.                                 query(query);
  90.                             }
  91.                         }, 20);
  92.             }
  93.         }
  94.         return null;
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement