From 1f899f9851745a03b8ad52ffb627af8ef219895b Mon Sep 17 00:00:00 2001 From: Matt Parnell Date: Mon, 18 Aug 2014 23:02:58 -0500 Subject: [PATCH] fix some SQL issues where we were grabbing way too much data than we needed for our results --- src/services/CharacterService.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/services/CharacterService.java b/src/services/CharacterService.java index 9e72b780..48d0ac9f 100644 --- a/src/services/CharacterService.java +++ b/src/services/CharacterService.java @@ -527,7 +527,7 @@ public class CharacterService implements INetworkDispatch { ResultSet resultSet = preparedStatement.executeQuery(); characters = 0; - if (resultSet.next() && !resultSet.isClosed()) + if (!resultSet.isClosed() && resultSet.next()) characters = resultSet.getInt("charCount"); } catch (SQLException e) { e.printStackTrace(); @@ -578,10 +578,10 @@ public class CharacterService implements INetworkDispatch { name = name.toLowerCase(); long oid = 0L; try { - PreparedStatement ps = databaseConnection.preparedStatement("SELECT * FROM characters WHERE LOWER(\"firstName\")=?"); + PreparedStatement ps = databaseConnection.preparedStatement("SELECT COUNT(*) AS charCount FROM characters WHERE LOWER(\"firstName\")=?"); ps.setString(1, name); ResultSet resultSet = ps.executeQuery(); - while (resultSet.next()) { + if (!resultSet.isClosed() && resultSet.next()) { oid = resultSet.getLong("id"); } return oid; @@ -601,7 +601,7 @@ public class CharacterService implements INetworkDispatch { String name = ""; try { - PreparedStatement ps = databaseConnection.preparedStatement("SELECT * FROM characters WHERE \"id\"=?"); + PreparedStatement ps = databaseConnection.preparedStatement("SELECT firstName FROM characters WHERE \"id\"=?"); ps.setLong(1, oid); ResultSet resultSet = ps.executeQuery(); while (resultSet.next()) { @@ -612,7 +612,7 @@ public class CharacterService implements INetworkDispatch { } name = name.toLowerCase(); - } + } return name; } @@ -651,11 +651,11 @@ public class CharacterService implements INetworkDispatch { */ public int getAccountId(long objectId) { try { - PreparedStatement ps = databaseConnection.preparedStatement("SELECT * FROM characters WHERE id=?"); + PreparedStatement ps = databaseConnection.preparedStatement("SELECT accountId FROM characters WHERE id=?"); ps.setLong(1, objectId); ResultSet resultSet = ps.executeQuery(); - resultSet.next(); - return resultSet.getInt("accountId"); + if (resultSet.next()) + return resultSet.getInt("accountId"); } catch (SQLException e) { e.printStackTrace(); }