package de.sebastianvonhelmersen; import java.io.File; import java.sql.*; public class Database { private Statement statement; public Database(File dbFile) { try { String path = "jdbc:sqlite:" + dbFile.getAbsolutePath(); // create a database connection Connection connection = DriverManager.getConnection(path); Statement statement = connection.createStatement(); this.statement = statement; statement.setQueryTimeout(30); // set timeout to 30 sec. statement.executeUpdate( "CREATE TABLE IF NOT EXISTS players (" + "uuid VARCHAR(36) PRIMARY KEY, " + "uid VARCHAR(50), " + "mcusername VARCHAR(50), " + "ladp_username VARCHAR(50), " + "firstName VARCHAR(50), " + "lastName VARCHAR(50)," + "mail VARCHAR(320))" ); } catch(SQLException e) { // if the error message is "out of memory", // it probably means no database file is found e.printStackTrace(System.err); } } public boolean isAuthenticated(String uuid) { String query = "select * from players where uuid = ?"; try(PreparedStatement prep_query = this.statement.getConnection().prepareStatement(query)){ prep_query.setString(1, uuid); ResultSet rs = prep_query.executeQuery(); return rs.next(); } catch (SQLException e) { throw new RuntimeException(e); } } public void addPlayer(String uuid, String mcusername, user user) { String query = "insert into players values (?, ?, ?, ?, ?, ?, ?)"; try(PreparedStatement prep_query = this.statement.getConnection().prepareStatement(query)){ prep_query.setString(1, uuid); prep_query.setString(2, String.valueOf(user.uid)); prep_query.setString(3, mcusername); prep_query.setString(4, user.ldapName); prep_query.setString(5, user.firstName); prep_query.setString(6, user.lastName); prep_query.setString(7, user.email); prep_query.executeUpdate(); } catch ( SQLException e ) { throw new RuntimeException(e); } } }