Advertisement
Guest User

Untitled

a guest
Mar 1st, 2017
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.44 KB | None | 0 0
  1. package nl.dusdavidgames.test;
  2.  
  3. import com.zaxxer.hikari.HikariDataSource;
  4. import org.bukkit.Bukkit;
  5. import org.bukkit.configuration.file.YamlConfiguration;
  6.  
  7. import java.io.File;
  8. import java.sql.Connection;
  9. import java.sql.PreparedStatement;
  10. import java.sql.SQLException;
  11.  
  12. /**
  13.  * Created by michi on 27/02/2017.
  14.  */
  15. public class DatabaseManager {
  16.  
  17.     private static String USERNAME;
  18.     private static String PASSWORD;
  19.     private static String DB_URL;
  20.     private static String DB_NAME;
  21.  
  22.     public static HikariDataSource datasource;
  23.  
  24.     public static HikariDataSource getDatasource() {
  25.         return datasource;
  26.     }
  27.  
  28.     public static DatabaseManager instance;
  29.  
  30.     public static DatabaseManager getInstance() {
  31.         return instance;
  32.     }
  33.  
  34.     public DatabaseManager() {
  35.         try{
  36.             openConnection();
  37.         } catch (Exception e){
  38.             e.printStackTrace();
  39.         }
  40.  
  41.     }
  42.  
  43.     public void openConnection() {
  44.         /*
  45.             database:
  46.               username: root
  47.               isolation: REPEATABLEREAD
  48.               driver: com.mysql.jdbc.Driver
  49.               password: Pidiboe002
  50.               url: jdbc:mysql://localhost:3306/test
  51.               name: test
  52.                  */
  53.  
  54.         YamlConfiguration bukkitYml = YamlConfiguration.loadConfiguration(new File(Bukkit.getWorldContainer().getAbsoluteFile(), "bukkit.yml"));
  55.  
  56.         USERNAME = bukkitYml.getString("database.username");
  57.         PASSWORD = bukkitYml.getString("database.password");
  58.         DB_URL = bukkitYml.getString("database.url");
  59.         DB_NAME = bukkitYml.getString("database.name");
  60.  
  61.         datasource = new HikariDataSource();
  62.  
  63.         datasource.setMaximumPoolSize(10);
  64.         datasource.setDataSourceClassName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource");
  65.         datasource.addDataSourceProperty("serverName", DB_URL);
  66.         datasource.addDataSourceProperty("port", 3306);
  67.         try {
  68.             datasource.addDataSourceProperty("databaseName", DB_NAME);
  69.         } catch (NullPointerException e) {
  70.  
  71.         }
  72.         datasource.addDataSourceProperty("user", USERNAME);
  73.         datasource.addDataSourceProperty("password", PASSWORD);
  74.     }
  75.  
  76.     public void closeConnection() {
  77.         if (datasource != null)
  78.             datasource.close();
  79.         if (datasource == null)
  80.             Messages.getInstance().info("Datascoure was not closed!");
  81.     }
  82.  
  83.     public void insertQuery(String query) throws Exception {
  84.         Connection connection = null;
  85.         PreparedStatement pStatement = null;
  86.  
  87.         try {
  88.             connection = datasource.getConnection();
  89.             pStatement = connection.prepareStatement(query);
  90.             pStatement.execute();
  91.         } catch (Exception e) {
  92.             e.printStackTrace();
  93.             Messages.getInstance().info("Something went wrong on inserting Query @ DatabaseManager:insertQuery");
  94.         } finally {
  95.             try {
  96.                 if (connection != null) {
  97.                     connection.close();
  98.                 }
  99.             } catch (SQLException ex) {
  100.                 Messages.getInstance().info("Couldn't close DB Connection");
  101.             }
  102.             try {
  103.                 if (pStatement != null) {
  104.                     pStatement.close();
  105.                 }
  106.             } catch (SQLException ex) {
  107.                 Messages.getInstance().info("Couldn't close DB PreparedStatement");
  108.             }
  109.         }
  110.     }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement