diff --git a/build.gradle b/build.gradle index 5b2d6fb..2d9c632 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { } group 'tech.nevets.osql4j' -version '1.1.1' +version '1.1.2' sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 diff --git a/src/main/java/tech/nevets/osql4j/SQLConnection.java b/src/main/java/tech/nevets/osql4j/SQLConnection.java index cee0fce..d633e87 100644 --- a/src/main/java/tech/nevets/osql4j/SQLConnection.java +++ b/src/main/java/tech/nevets/osql4j/SQLConnection.java @@ -150,7 +150,7 @@ public class SQLConnection { * @param id the value that will be searched for * @return Array of all found objects */ - public T[] getObjectsById(String column, String id) { + public List getObjectsById(String column, String id) { List objects = new ArrayList<>(); try { String sql = "SELECT * FROM " + clazz.getSimpleName() + " WHERE " + column + "=" + id + ";"; @@ -162,12 +162,10 @@ public class SQLConnection { System.out.println("Error parsing object from database..."); e.printStackTrace(); } - @SuppressWarnings("unchecked") - T[] objectArray = (T[]) Array.newInstance(this.clazz, objects.size()); - return objectArray; + return objects; } - public T[] getAllObjects() { + public List getAllObjects() { List objects = new ArrayList<>(); try { String sql = "SELECT * FROM " + clazz.getSimpleName() + ";"; @@ -179,9 +177,8 @@ public class SQLConnection { System.out.println("Error parsing objects from database..."); e.printStackTrace(); } - @SuppressWarnings("unchecked") - T[] objectArray = (T[]) Array.newInstance(this.clazz, objects.size()); - return objectArray; + + return objects; } public DatabaseMetaData getMetadata() { @@ -233,19 +230,19 @@ public class SQLConnection { objectField.setAccessible(true); switch (fieldType) { - case "boolean", "java.lang.Boolean" -> objectField.setBoolean(object, results.getBoolean(i + 2)); - case "byte", "java.lang.Byte" -> objectField.setByte(object, results.getByte(i + 2)); - case "byte[]", "java.lang.Byte[]" -> objectField.set(object, results.getBytes(i + 2)); - case "double", "java.lang.Double" -> objectField.setDouble(object, results.getFloat(i + 2)); - case "float", "java.lang.Float" -> objectField.setFloat(object, results.getFloat(i + 2)); - case "int", "java.lang.Integer" -> objectField.setInt(object, results.getInt(i + 2)); - case "long", "java.lang.Long" -> objectField.setLong(object, results.getLong(i + 2)); - case "short", "java.lang.Short" -> objectField.setShort(object, results.getShort(i + 2)); - case "java.lang.String" -> objectField.set(object, results.getString(i + 2)); - case "java.math.BigDecimal" -> objectField.set(object, results.getBigDecimal(i + 2)); - case "java.sql.Date" -> objectField.set(object, results.getDate(i + 2)); - case "java.sql.Time" -> objectField.set(object, results.getTime(i + 2)); - case "java.sql.TimeStamp" -> objectField.set(object, results.getTimestamp(i + 2)); + case "boolean", "java.lang.Boolean" -> objectField.setBoolean(object, results.getBoolean(i + 1)); + case "byte", "java.lang.Byte" -> objectField.setByte(object, results.getByte(i + 1)); + case "byte[]", "java.lang.Byte[]" -> objectField.set(object, results.getBytes(i + 1)); + case "double", "java.lang.Double" -> objectField.setDouble(object, results.getFloat(i + 1)); + case "float", "java.lang.Float" -> objectField.setFloat(object, results.getFloat(i + 1)); + case "int", "java.lang.Integer" -> objectField.setInt(object, results.getInt(i + 1)); + case "long", "java.lang.Long" -> objectField.setLong(object, results.getLong(i + 1)); + case "short", "java.lang.Short" -> objectField.setShort(object, results.getShort(i + 1)); + case "java.lang.String" -> objectField.set(object, results.getString(i + 1)); + case "java.math.BigDecimal" -> objectField.set(object, results.getBigDecimal(i + 1)); + case "java.sql.Date" -> objectField.set(object, results.getDate(i + 1)); + case "java.sql.Time" -> objectField.set(object, results.getTime(i + 1)); + case "java.sql.TimeStamp" -> objectField.set(object, results.getTimestamp(i + 1)); } } return object; diff --git a/src/test/java/NewDBTest.java b/src/test/java/NewDBTest.java index 93040aa..0eba2ef 100644 --- a/src/test/java/NewDBTest.java +++ b/src/test/java/NewDBTest.java @@ -6,6 +6,10 @@ public class NewDBTest { SQLConnection.setGlobalDBLocation("./database.db"); SQLConnection connection = new SQLConnection<>(Animal.class); connection.writeObject(new Animal("Fuzzy", 6, "brown")); + + for (Animal animal : connection.getAllObjects()) { + System.out.println(animal); + } connection.close(); } }