Advertisement
Guest User

DataManager

a guest
Mar 1st, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.48 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.             insertQuery("create table test (naam text)");
  38.         } catch (Exception e){
  39.             e.printStackTrace();
  40.         }
  41.  
  42.     }
  43.  
  44.     public void openConnection() {
  45.         /*
  46.             database:
  47.               username: root
  48.               isolation: REPEATABLEREAD
  49.               driver: com.mysql.jdbc.Driver
  50.               password: Pidiboe002
  51.               url: jdbc:mysql://localhost:3306/test
  52.               name: test
  53.                  */
  54.  
  55.         YamlConfiguration bukkitYml = YamlConfiguration.loadConfiguration(new File(Bukkit.getWorldContainer().getAbsoluteFile(), "bukkit.yml"));
  56.  
  57.         USERNAME = bukkitYml.getString("database.username");
  58.         PASSWORD = bukkitYml.getString("database.password");
  59.         DB_URL = bukkitYml.getString("database.url");
  60.         DB_NAME = bukkitYml.getString("database.name");
  61.  
  62.         datasource = new HikariDataSource();
  63.  
  64.         datasource.setMaximumPoolSize(10);
  65.         datasource.setDataSourceClassName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource");
  66.         datasource.addDataSourceProperty("serverName", DB_URL);
  67.         datasource.addDataSourceProperty("port", 3306);
  68.         try {
  69.             datasource.addDataSourceProperty("databaseName", DB_NAME);
  70.         } catch (NullPointerException e) {
  71.  
  72.         }
  73.         datasource.addDataSourceProperty("user", USERNAME);
  74.         datasource.addDataSourceProperty("password", PASSWORD);
  75.     }
  76.  
  77.     public void closeConnection() {
  78.         if (datasource != null)
  79.             datasource.close();
  80.         if (datasource == null)
  81.             Messages.getInstance().info("Datascoure was not closed!");
  82.     }
  83.  
  84.     public void insertQuery(String query) {
  85.         Connection connection = null;
  86.         PreparedStatement pStatement = null;
  87.  
  88.         try {
  89.             connection = datasource.getConnection();
  90.             pStatement = connection.prepareStatement(query);
  91.             pStatement.execute();
  92.         } catch (SQLException e) {
  93.             e.printStackTrace();
  94.             Messages.getInstance().info("Something went wrong on inserting Query @ DatabaseManager:insertQuery");
  95.         } finally {
  96.             try {
  97.                 if (connection != null) {
  98.                     connection.close();
  99.                 }
  100.             } catch (SQLException ex) {
  101.                 Messages.getInstance().info("Couldn't close DB Connection");
  102.             }
  103.             try {
  104.                 if (pStatement != null) {
  105.                     pStatement.close();
  106.                 }
  107.             } catch (SQLException ex) {
  108.                 Messages.getInstance().info("Couldn't close DB PreparedStatement");
  109.             }
  110.         }
  111.     }
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement