From d8e41e41393e1f2e732db8522b3d7f8da2b4d092 Mon Sep 17 00:00:00 2001 From: wangbing Date: Sat, 28 Sep 2019 14:32:12 +0800 Subject: [PATCH] 111 --- pom.xml | 2 +- .../java/{ => xyz/wbsite/wsqlite}/Client.java | 4 +- .../wbsite/wsqlite}/ObjectClient.java | 48 ++++++++++++++----- .../wbsite/wsqlite/anonation/TableField.java} | 4 +- .../{ => xyz/wbsite/wsqlite}/entity/User.java | 18 +++++-- .../{SqliteTest.java => WsqliteTest.java} | 5 +- 6 files changed, 59 insertions(+), 22 deletions(-) rename src/main/java/{ => xyz/wbsite/wsqlite}/Client.java (97%) rename src/main/java/{ => xyz/wbsite/wsqlite}/ObjectClient.java (82%) rename src/main/java/{anonation/Varchar.java => xyz/wbsite/wsqlite/anonation/TableField.java} (78%) rename src/main/java/{ => xyz/wbsite/wsqlite}/entity/User.java (54%) rename src/test/java/{SqliteTest.java => WsqliteTest.java} (91%) diff --git a/pom.xml b/pom.xml index 43c0389..940211f 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 xyz.wbsite - wbsqlite + wsqlite 1.0-SNAPSHOT diff --git a/src/main/java/Client.java b/src/main/java/xyz/wbsite/wsqlite/Client.java similarity index 97% rename from src/main/java/Client.java rename to src/main/java/xyz/wbsite/wsqlite/Client.java index 670a675..1f98fb8 100644 --- a/src/main/java/Client.java +++ b/src/main/java/xyz/wbsite/wsqlite/Client.java @@ -1,8 +1,10 @@ +package xyz.wbsite.wsqlite; + import java.io.File; import java.sql.*; /** - * Client + * xyz.wbsite.wsqlite.Client * * @author wangbing */ diff --git a/src/main/java/ObjectClient.java b/src/main/java/xyz/wbsite/wsqlite/ObjectClient.java similarity index 82% rename from src/main/java/ObjectClient.java rename to src/main/java/xyz/wbsite/wsqlite/ObjectClient.java index 6e4cee9..0865c8e 100644 --- a/src/main/java/ObjectClient.java +++ b/src/main/java/xyz/wbsite/wsqlite/ObjectClient.java @@ -1,5 +1,6 @@ -import anonation.Varchar; +package xyz.wbsite.wsqlite; +import xyz.wbsite.wsqlite.anonation.TableField; import java.io.File; import java.lang.reflect.Field; import java.sql.SQLException; @@ -9,7 +10,7 @@ import java.util.List; import java.util.Map; /** - * Client + * xyz.wbsite.wsqlite.Client * * @author wangbing */ @@ -41,11 +42,17 @@ public class ObjectClient extends Client { Field[] fields = object.getDeclaredFields(); for (Field f : fields) { - if (f.isAnnotationPresent(Varchar.class)) { - Varchar bind = f.getAnnotation(Varchar.class); + if (f.isAnnotationPresent(TableField.class)) { + TableField bind = f.getAnnotation(TableField.class); int length = bind.value(); - sql.append(f.getName().toUpperCase()); - sql.append(" VARCHAR(" + length + "),"); + + if (f.getType() == String.class) { + sql.append(f.getName().toUpperCase()); + sql.append(" VARCHAR(" + length + "),"); + } else if (f.getType() == Boolean.class || f.getType() == boolean.class) { + sql.append(f.getName().toUpperCase()); + sql.append(" BOOLEAN,"); + } } } @@ -79,10 +86,14 @@ public class ObjectClient extends Client { fieldsSql.append(f.getName().toUpperCase()); Object value = f.get(po); - if (value instanceof String) { + if (f.getType() == String.class) { valueSql.append("'"); valueSql.append(value); valueSql.append("'"); + } else if (f.getType() == Boolean.class || f.getType() == boolean.class) { + valueSql.append("'"); + valueSql.append(String.valueOf(value)); + valueSql.append("'"); } else { valueSql.append(value); } @@ -153,10 +164,14 @@ public class ObjectClient extends Client { sql.append(" = "); Object value = f.get(po); - if (value instanceof String) { + if (f.getType() == String.class) { sql.append("'"); sql.append(value); sql.append("'"); + } else if (f.getType() == Boolean.class || f.getType() == boolean.class) { + sql.append("'"); + sql.append(String.valueOf(value)); + sql.append("'"); } else { sql.append(value); } @@ -254,8 +269,17 @@ public class ObjectClient extends Client { for (int i = 0; i < fs.size(); i++) { Field f = fs.get(i); f.setAccessible(true); - String string = resultSet.getString(f.getName()); - f.set(o, string); + + if (f.getType() == String.class) { + String string = resultSet.getString(f.getName()); + f.set(o, string); + } else if (f.getType() == Boolean.class || f.getType() == boolean.class) { + boolean b = resultSet.getBoolean(f.getName()); + f.set(o, b); + } else { + String string = resultSet.getString(f.getName()); + f.set(o, string); + } } rsList.add(o); } catch (InstantiationException e) { @@ -270,10 +294,10 @@ public class ObjectClient extends Client { return rsList; } - private List getFields(Class aClass){ + private List getFields(Class aClass) { List fs = new ArrayList<>(); for (Field f : aClass.getDeclaredFields()) { - if (f.isAnnotationPresent(Varchar.class)) { + if (f.isAnnotationPresent(TableField.class)) { fs.add(f); } } diff --git a/src/main/java/anonation/Varchar.java b/src/main/java/xyz/wbsite/wsqlite/anonation/TableField.java similarity index 78% rename from src/main/java/anonation/Varchar.java rename to src/main/java/xyz/wbsite/wsqlite/anonation/TableField.java index d6d24fd..838c286 100644 --- a/src/main/java/anonation/Varchar.java +++ b/src/main/java/xyz/wbsite/wsqlite/anonation/TableField.java @@ -1,4 +1,4 @@ -package anonation; +package xyz.wbsite.wsqlite.anonation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; @@ -7,7 +7,7 @@ import java.lang.annotation.Target; @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) -public @interface Varchar { +public @interface TableField { int value() default 20; } diff --git a/src/main/java/entity/User.java b/src/main/java/xyz/wbsite/wsqlite/entity/User.java similarity index 54% rename from src/main/java/entity/User.java rename to src/main/java/xyz/wbsite/wsqlite/entity/User.java index b9adf11..97d27ce 100644 --- a/src/main/java/entity/User.java +++ b/src/main/java/xyz/wbsite/wsqlite/entity/User.java @@ -1,13 +1,23 @@ -package entity; +package xyz.wbsite.wsqlite.entity; -import anonation.Varchar; +import xyz.wbsite.wsqlite.anonation.TableField; public class User { - @Varchar(40) + @TableField(40) private String name; - @Varchar(40) + @TableField(40) private String password; + @TableField + private boolean valid; + + public boolean isValid() { + return valid; + } + + public void setValid(boolean valid) { + this.valid = valid; + } public String getName() { return name; diff --git a/src/test/java/SqliteTest.java b/src/test/java/WsqliteTest.java similarity index 91% rename from src/test/java/SqliteTest.java rename to src/test/java/WsqliteTest.java index f2960d3..33a4e7f 100644 --- a/src/test/java/SqliteTest.java +++ b/src/test/java/WsqliteTest.java @@ -1,11 +1,12 @@ -import entity.User; +import xyz.wbsite.wsqlite.ObjectClient; +import xyz.wbsite.wsqlite.entity.User; import java.io.File; import java.sql.*; import java.util.ArrayList; import java.util.List; -public class SqliteTest { +public class WsqliteTest { public static void main(String[] args) { try { List arrayList = new ArrayList();