Files
fetmcplugin/src/main/java/de/sebastianvonhelmersen/Database.java

65 lines
2.4 KiB
Java

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);
}
}
}