summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/database
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/database')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/database/Database.java21
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java11
2 files changed, 28 insertions, 4 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/database/Database.java b/src/main/java/net/tylermurphy/hideAndSeek/database/Database.java
index 602c948..8001368 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/database/Database.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/database/Database.java
@@ -21,6 +21,8 @@ package net.tylermurphy.hideAndSeek.database;
import com.google.common.io.ByteStreams;
import net.tylermurphy.hideAndSeek.Main;
+import org.sqlite.SQLiteConfig;
+import sun.font.ScriptRun;
import java.io.ByteArrayInputStream;
import java.io.File;
@@ -30,6 +32,8 @@ import java.nio.ByteBuffer;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
+
+import java.sql.Statement;
import java.util.UUID;
public class Database {
@@ -37,14 +41,15 @@ public class Database {
private static final File databaseFile = new File(Main.data, "database.db");
public static PlayerInfoTable playerInfo;
+ private static SQLiteConfig config;
protected static Connection connect() {
Connection conn = null;
try {
String url = "jdbc:sqlite:"+databaseFile;
- conn = DriverManager.getConnection(url);
+ conn = DriverManager.getConnection(url, config.toProperties());
} catch (SQLException e) {
- System.out.println(e.getMessage());
+ Main.plugin.getLogger().severe(e.getMessage());
}
return conn;
}
@@ -68,6 +73,18 @@ public class Database {
}
public static void init(){
+ try {
+ Class.forName("org.sqlite.JDBC");
+ } catch (ClassNotFoundException e) {
+ Main.plugin.getLogger().severe(e.getMessage());
+ throw new RuntimeException(e.getMessage());
+ }
+
+ config = new SQLiteConfig();
+ config.setSynchronous(SQLiteConfig.SynchronousMode.NORMAL);
+ config.setTempStore(SQLiteConfig.TempStore.MEMORY);
+
playerInfo = new PlayerInfoTable();
}
+
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java b/src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java
index e859687..7b9b476 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/database/PlayerInfoTable.java
@@ -20,8 +20,10 @@
package net.tylermurphy.hideAndSeek.database;
import net.tylermurphy.hideAndSeek.Main;
+import net.tylermurphy.hideAndSeek.configuration.Config;
import net.tylermurphy.hideAndSeek.util.WinType;
+import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
@@ -42,7 +44,7 @@ public class PlayerInfoTable {
+ ");";
try(Connection connection = Database.connect(); Statement statement = connection.createStatement()){
- statement.execute(sql);
+ statement.executeUpdate(sql);
} catch (SQLException e){
Main.plugin.getLogger().severe("SQL Error: " + e.getMessage());
}
@@ -59,6 +61,8 @@ public class PlayerInfoTable {
statement.setBytes(1, bytes);
ResultSet rs = statement.executeQuery();
if(rs.next()){
+ rs.close();
+ connection.close();
return new PlayerInfo(
uuid,
rs.getInt("wins"),
@@ -67,6 +71,7 @@ public class PlayerInfoTable {
rs.getInt("games_played")
);
}
+ rs.close();
} catch (SQLException e){
Main.plugin.getLogger().severe("SQL Error: " + e.getMessage());
} catch (IOException e) {
@@ -84,7 +89,7 @@ public class PlayerInfoTable {
List<PlayerInfo> infoList = new ArrayList<>();
while(rs.next()){
PlayerInfo info = new PlayerInfo(
- Database.convertBinaryStream(rs.getBinaryStream("uuid")),
+ Database.convertBinaryStream(new ByteArrayInputStream(rs.getBytes("uuid"))),
rs.getInt("wins"),
rs.getInt("seeker_wins"),
rs.getInt("hider_wins"),
@@ -92,6 +97,8 @@ public class PlayerInfoTable {
);
infoList.add(info);
}
+ rs.close();
+ connection.close();
return infoList;
} catch (SQLException e){
Main.plugin.getLogger().severe("SQL Error: " + e.getMessage());