diff options
Diffstat (limited to '')
| -rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/database/connections/DatabaseConnection.java (renamed from src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfo.java) | 20 | ||||
| -rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/database/connections/MySQLConnection.java | 57 | ||||
| -rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/database/connections/SQLiteConnection.java | 64 |
3 files changed, 127 insertions, 14 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfo.java b/src/main/java/net/tylermurphy/hideAndSeek/database/connections/DatabaseConnection.java index 8464b54..466bda5 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfo.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/database/connections/DatabaseConnection.java @@ -1,7 +1,7 @@ /* * This file is part of Kenshins Hide and Seek * - * Copyright (c) 2021 Tyler Murphy. + * Copyright (c) 2022 Tyler Murphy. * * Kenshins Hide and Seek free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,21 +17,13 @@ * */ -package net.tylermurphy.hideAndSeek.database; +package net.tylermurphy.hideAndSeek.database.connections; -import java.util.UUID; +import java.sql.Connection; +import java.sql.SQLException; -public class PlayerInfo { +public interface DatabaseConnection { - public UUID uuid; - public int wins, hider_wins, seeker_wins, games_played; - - public PlayerInfo(UUID uuid, int wins, int hider_wins, int seeker_wins, int games_played){ - this.uuid = uuid; - this.wins = wins; - this.hider_wins = hider_wins; - this.seeker_wins = seeker_wins; - this.games_played = games_played; - } + Connection connect() throws SQLException; } diff --git a/src/main/java/net/tylermurphy/hideAndSeek/database/connections/MySQLConnection.java b/src/main/java/net/tylermurphy/hideAndSeek/database/connections/MySQLConnection.java new file mode 100644 index 0000000..b7c1b1d --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/database/connections/MySQLConnection.java @@ -0,0 +1,57 @@ +/* + * This file is part of Kenshins Hide and Seek + * + * Copyright (c) 2022 Tyler Murphy. + * + * Kenshins Hide and Seek free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * he Free Software Foundation version 3. + * + * Kenshins Hide and Seek is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +package net.tylermurphy.hideAndSeek.database.connections; + +import com.zaxxer.hikari.HikariConfig; +import com.zaxxer.hikari.HikariDataSource; + +import java.sql.Connection; +import java.sql.SQLException; + +import static net.tylermurphy.hideAndSeek.configuration.Config.*; + +public class MySQLConnection implements DatabaseConnection { + + private final HikariDataSource ds; + + public MySQLConnection(){ + + HikariConfig config = new HikariConfig(); + + config.setJdbcUrl("jdbc:mariadb://"+databaseHost+":"+databasePort+"/"+databaseName); + config.addDataSourceProperty("cachePrepStmts", "true"); + config.addDataSourceProperty("prepStmtCacheSize", "250"); + config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048"); + config.addDataSourceProperty("user", databaseUser); + config.addDataSourceProperty("password",databasePass); + config.addDataSourceProperty("autoCommit", "true"); + config.setAutoCommit(true); + config.setMaximumPoolSize(20); + + ds = new HikariDataSource(config); + + } + + @Override + public Connection connect() throws SQLException { + return ds.getConnection(); + } + +} diff --git a/src/main/java/net/tylermurphy/hideAndSeek/database/connections/SQLiteConnection.java b/src/main/java/net/tylermurphy/hideAndSeek/database/connections/SQLiteConnection.java new file mode 100644 index 0000000..1a03106 --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/database/connections/SQLiteConnection.java @@ -0,0 +1,64 @@ +/* + * This file is part of Kenshins Hide and Seek + * + * Copyright (c) 2022 Tyler Murphy. + * + * Kenshins Hide and Seek free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * he Free Software Foundation version 3. + * + * Kenshins Hide and Seek is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +package net.tylermurphy.hideAndSeek.database.connections; + +import net.tylermurphy.hideAndSeek.Main; +import org.sqlite.SQLiteConfig; + +import java.io.File; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class SQLiteConnection implements DatabaseConnection { + + private final File databaseFile; + private final SQLiteConfig config; + + public SQLiteConnection(){ + + try { + Class.forName("org.sqlite.JDBC"); + } catch (ClassNotFoundException e) { + Main.getInstance().getLogger().severe(e.getMessage()); + throw new RuntimeException(e.getMessage()); + } + + databaseFile = new File(Main.getInstance().getDataFolder(), "database.db"); + + config = new SQLiteConfig(); + config.setSynchronous(SQLiteConfig.SynchronousMode.NORMAL); + config.setTempStore(SQLiteConfig.TempStore.MEMORY); + } + + @Override + public Connection connect() { + Connection conn = null; + try { + String url = "jdbc:sqlite:"+databaseFile; + conn = DriverManager.getConnection(url, config.toProperties()); + } catch (SQLException e) { + Main.getInstance().getLogger().severe(e.getMessage()); + e.printStackTrace(); + } + return conn; + } + +} |