From c283f52f443f2a2a14ca299d38e1f51553766941 Mon Sep 17 00:00:00 2001 From: Steven Tracey Date: Mon, 14 Nov 2022 09:58:34 -0500 Subject: [PATCH] Fix issue with fields being doubled --- .gitignore | 1 + .idea/dataSources.xml | 17 +++++++ build.gradle | 2 +- .../tech/nevets/osql4j/SQLConnection.java | 4 +- src/test/java/NewDBTest.java | 11 +++++ src/test/java/examplebeans/Animal.java | 44 +++++++++++++++++++ src/test/java/examplebeans/Cat.java | 5 +++ src/test/java/examplebeans/Dog.java | 4 ++ 8 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 .idea/dataSources.xml create mode 100644 src/test/java/NewDBTest.java create mode 100644 src/test/java/examplebeans/Animal.java create mode 100644 src/test/java/examplebeans/Cat.java create mode 100644 src/test/java/examplebeans/Dog.java diff --git a/.gitignore b/.gitignore index 69aa72a..3a06ac7 100644 --- a/.gitignore +++ b/.gitignore @@ -152,3 +152,4 @@ gradle-app.setting # JDT-specific (Eclipse Java Development Tools) .classpath +database.db \ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..be81b15 --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,17 @@ + + + + + sqlite.xerial + true + org.sqlite.JDBC + jdbc:sqlite:C:\Users\svtra\IdeaProjects\OSQL4J\database.db + $ProjectFileDir$ + + + file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.39.2/sqlite-jdbc-3.39.2.jar + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index d2ac8a8..5b2d6fb 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { } group 'tech.nevets.osql4j' -version '1.1.0' +version '1.1.1' 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 8619ae5..cee0fce 100644 --- a/src/main/java/tech/nevets/osql4j/SQLConnection.java +++ b/src/main/java/tech/nevets/osql4j/SQLConnection.java @@ -213,7 +213,7 @@ public class SQLConnection { try { String sql = "CREATE TABLE IF NOT EXISTS " + clazz.getSimpleName() + - " (id INT PRIMARY KEY, " + + " ( " + sqlFormattedFields + " );"; statement.executeUpdate(sql); @@ -257,7 +257,7 @@ public class SQLConnection { } private List getFields() { - List fieldsList = new ArrayList<>(List.of(clazz.getDeclaredFields())); + List fieldsList = new ArrayList<>(); for (Class c = clazz; c != null; c = c.getSuperclass()) { fieldsList.addAll(Arrays.asList(c.getDeclaredFields())); } diff --git a/src/test/java/NewDBTest.java b/src/test/java/NewDBTest.java new file mode 100644 index 0000000..93040aa --- /dev/null +++ b/src/test/java/NewDBTest.java @@ -0,0 +1,11 @@ +import examplebeans.Animal; +import tech.nevets.osql4j.SQLConnection; + +public class NewDBTest { + public static void main(String[] args) { + SQLConnection.setGlobalDBLocation("./database.db"); + SQLConnection connection = new SQLConnection<>(Animal.class); + connection.writeObject(new Animal("Fuzzy", 6, "brown")); + connection.close(); + } +} diff --git a/src/test/java/examplebeans/Animal.java b/src/test/java/examplebeans/Animal.java new file mode 100644 index 0000000..503cbc4 --- /dev/null +++ b/src/test/java/examplebeans/Animal.java @@ -0,0 +1,44 @@ +package examplebeans; + +public class Animal { + private String name; + private int age; + private String color; + + public Animal() {} + + public Animal(String name, int age, String color) { + this.name = name; + this.age = age; + this.color = color; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public String getColor() { + return color; + } + + public void setColor(String color) { + this.color = color; + } + + @Override + public String toString() { + return "Animal: " + name + ", " + age + ", " + color; + } +} diff --git a/src/test/java/examplebeans/Cat.java b/src/test/java/examplebeans/Cat.java new file mode 100644 index 0000000..e0d805a --- /dev/null +++ b/src/test/java/examplebeans/Cat.java @@ -0,0 +1,5 @@ +package examplebeans; + +public class Cat extends Animal { + +} diff --git a/src/test/java/examplebeans/Dog.java b/src/test/java/examplebeans/Dog.java new file mode 100644 index 0000000..48151f5 --- /dev/null +++ b/src/test/java/examplebeans/Dog.java @@ -0,0 +1,4 @@ +package examplebeans; + +public class Dog extends Animal { +}