Skip to content

Commit 4efc658

Browse files
committed
More postgres fixes
1 parent 4c10647 commit 4efc658

2 files changed

Lines changed: 58 additions & 8 deletions

File tree

core/src/main/java/com/github/games647/fastlogin/core/storage/PostgreSQLStorage.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,28 @@ protected String getAddFloodgateColumnStmt() {
7474
.replace("`", "\"")
7575
.replace("INTEGER(3)", "INTEGER");
7676
}
77+
78+
@Override
79+
protected String getLoadByNameStmt() {
80+
return LOAD_BY_NAME_STMT
81+
.replace("`", "\"");
82+
}
83+
84+
@Override
85+
protected String getLoadByUuidStmt() {
86+
return LOAD_BY_UUID_STMT
87+
.replace("`", "\"");
88+
}
89+
90+
@Override
91+
protected String getInsertProfileStmt() {
92+
return INSERT_PROFILE_STMT
93+
.replace("`", "\"");
94+
}
95+
96+
@Override
97+
protected String getUpdateProfileStmt() {
98+
return UPDATE_PROFILE_STMT
99+
.replace("`", "\"");
100+
}
77101
}

core/src/main/java/com/github/games647/fastlogin/core/storage/SQLStorage.java

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,14 @@ public abstract class SQLStorage implements AuthStorage {
6161
protected static final String ADD_FLOODGATE_COLUMN_STMT = "ALTER TABLE `" + PREMIUM_TABLE
6262
+ "` ADD COLUMN `Floodgate` INTEGER(3)";
6363

64-
protected static final String LOAD_BY_NAME = "SELECT * FROM `" + PREMIUM_TABLE
64+
protected static final String LOAD_BY_NAME_STMT = "SELECT * FROM `" + PREMIUM_TABLE
6565
+ "` WHERE `Name`=? LIMIT 1";
66-
protected static final String LOAD_BY_UUID = "SELECT * FROM `" + PREMIUM_TABLE
66+
protected static final String LOAD_BY_UUID_STMT = "SELECT * FROM `" + PREMIUM_TABLE
6767
+ "` WHERE `UUID`=? LIMIT 1";
68-
protected static final String INSERT_PROFILE = "INSERT INTO `" + PREMIUM_TABLE
68+
protected static final String INSERT_PROFILE_STMT = "INSERT INTO `" + PREMIUM_TABLE
6969
+ "` (`UUID`, `Name`, `Premium`, `Floodgate`, `LastIp`) " + "VALUES (?, ?, ?, ?, ?) ";
7070
// limit not necessary here, because it's unique
71-
protected static final String UPDATE_PROFILE = "UPDATE `" + PREMIUM_TABLE
71+
protected static final String UPDATE_PROFILE_STMT = "UPDATE `" + PREMIUM_TABLE
7272
+ "` SET `UUID`=?, `Name`=?, `Premium`=?, `Floodgate`=?, `LastIp`=?, "
7373
+ "`LastLogin`=CURRENT_TIMESTAMP WHERE `UserID`=?";
7474

@@ -111,8 +111,9 @@ private boolean isColumnMissing(DatabaseMetaData metaData, String columnName) th
111111

112112
@Override
113113
public StoredProfile loadProfile(String name) {
114+
log.error("loadProfile " + name);
114115
try (Connection con = dataSource.getConnection();
115-
PreparedStatement loadStmt = con.prepareStatement(LOAD_BY_NAME)
116+
PreparedStatement loadStmt = con.prepareStatement(getLoadByNameStmt())
116117
) {
117118
loadStmt.setString(1, name);
118119

@@ -129,8 +130,9 @@ public StoredProfile loadProfile(String name) {
129130

130131
@Override
131132
public StoredProfile loadProfile(UUID uuid) {
133+
log.error("loadProfile " + uuid.toString());
132134
try (Connection con = dataSource.getConnection();
133-
PreparedStatement loadStmt = con.prepareStatement(LOAD_BY_UUID)) {
135+
PreparedStatement loadStmt = con.prepareStatement(getLoadByUuidStmt())) {
134136
loadStmt.setString(1, UUIDAdapter.toMojangId(uuid));
135137

136138
try (ResultSet resultSet = loadStmt.executeQuery()) {
@@ -171,13 +173,14 @@ private Optional<StoredProfile> parseResult(ResultSet resultSet) throws SQLExcep
171173

172174
@Override
173175
public void save(StoredProfile playerProfile) {
176+
log.error("save");
174177
try (Connection con = dataSource.getConnection()) {
175178
String uuid = playerProfile.getOptId().map(UUIDAdapter::toMojangId).orElse(null);
176179

177180
playerProfile.getSaveLock().lock();
178181
try {
179182
if (playerProfile.isSaved()) {
180-
try (PreparedStatement saveStmt = con.prepareStatement(UPDATE_PROFILE)) {
183+
try (PreparedStatement saveStmt = con.prepareStatement(getUpdateProfileStmt())) {
181184
saveStmt.setString(1, uuid);
182185
saveStmt.setString(2, playerProfile.getName());
183186
saveStmt.setBoolean(3, playerProfile.isPremium());
@@ -188,7 +191,8 @@ public void save(StoredProfile playerProfile) {
188191
saveStmt.execute();
189192
}
190193
} else {
191-
try (PreparedStatement saveStmt = con.prepareStatement(INSERT_PROFILE, RETURN_GENERATED_KEYS)) {
194+
try (PreparedStatement saveStmt = con.prepareStatement(getInsertProfileStmt(),
195+
RETURN_GENERATED_KEYS)) {
192196
saveStmt.setString(1, uuid);
193197

194198
saveStmt.setString(2, playerProfile.getName());
@@ -218,6 +222,7 @@ public void save(StoredProfile playerProfile) {
218222
* @return An SQL Statement to create the `premium` table
219223
*/
220224
protected String getCreateTableStmt() {
225+
log.error("getCreateTableStmt");
221226
return CREATE_TABLE_STMT;
222227
}
223228

@@ -226,9 +231,30 @@ protected String getCreateTableStmt() {
226231
* @return An SQL Statement to create the `premium` table
227232
*/
228233
protected String getAddFloodgateColumnStmt() {
234+
log.error("getAddFloodgateColumnStmt");
229235
return ADD_FLOODGATE_COLUMN_STMT;
230236
}
231237

238+
protected String getLoadByNameStmt() {
239+
log.error("getLoadByNameStmt");
240+
return LOAD_BY_NAME_STMT;
241+
}
242+
243+
protected String getLoadByUuidStmt() {
244+
log.error("getLoadByUuidStmt");
245+
return LOAD_BY_UUID_STMT;
246+
}
247+
248+
protected String getInsertProfileStmt() {
249+
log.error("getInsertProfileStmt");
250+
return INSERT_PROFILE_STMT;
251+
}
252+
253+
protected String getUpdateProfileStmt() {
254+
log.error("getUpdateProfileStmt");
255+
return UPDATE_PROFILE_STMT;
256+
}
257+
232258
@Override
233259
public void close() {
234260
dataSource.close();

0 commit comments

Comments
 (0)