From a1485440f3e0a385f3db3b8399a4f888498dabdf Mon Sep 17 00:00:00 2001 From: wangbing Date: Sat, 28 Sep 2019 18:02:07 +0800 Subject: [PATCH] 111 --- .../java/xyz/wbsite/wsqlite/ObjectClient.java | 83 ++++++++++++-- .../xyz/wbsite/wsqlite/entity/Example.java | 107 ++++++++++++++++++ .../java/xyz/wbsite/wsqlite/entity/User.java | 37 ------ src/test/java/WsqliteTest.java | 41 +++++-- 4 files changed, 212 insertions(+), 56 deletions(-) create mode 100644 src/main/java/xyz/wbsite/wsqlite/entity/Example.java delete mode 100644 src/main/java/xyz/wbsite/wsqlite/entity/User.java diff --git a/src/main/java/xyz/wbsite/wsqlite/ObjectClient.java b/src/main/java/xyz/wbsite/wsqlite/ObjectClient.java index 0865c8e..8447e1b 100644 --- a/src/main/java/xyz/wbsite/wsqlite/ObjectClient.java +++ b/src/main/java/xyz/wbsite/wsqlite/ObjectClient.java @@ -1,6 +1,7 @@ package xyz.wbsite.wsqlite; -import xyz.wbsite.wsqlite.anonation.TableField; +import xyz.wbsite.wsqlite.anonation.TableField; + import java.io.File; import java.lang.reflect.Field; import java.sql.SQLException; @@ -52,6 +53,20 @@ public class ObjectClient extends Client { } else if (f.getType() == Boolean.class || f.getType() == boolean.class) { sql.append(f.getName().toUpperCase()); sql.append(" BOOLEAN,"); + } else if (f.getType() == Byte.class || f.getType() == byte.class || + f.getType() == Short.class || f.getType() == short.class || + f.getType() == Character.class || f.getType() == char.class || + f.getType() == Integer.class || f.getType() == int.class || + f.getType() == Long.class || f.getType() == long.class) { + sql.append(f.getName().toUpperCase()); + sql.append(" INTEGER,"); + } else if (f.getType() == Float.class || f.getType() == float.class || + f.getType() == Double.class || f.getType() == double.class) { + sql.append(f.getName().toUpperCase()); + sql.append(" REAL,"); + } else if (f.getType() == Byte[].class || f.getType() == byte[].class) { + sql.append(f.getName().toUpperCase()); + sql.append(" BLOB,"); } } } @@ -94,8 +109,23 @@ public class ObjectClient extends Client { valueSql.append("'"); valueSql.append(String.valueOf(value)); valueSql.append("'"); - } else { + } else if (f.getType() == Byte.class || f.getType() == byte.class || + f.getType() == Short.class || f.getType() == short.class || + f.getType() == Character.class || f.getType() == char.class || + f.getType() == Integer.class || f.getType() == int.class || + f.getType() == Long.class || f.getType() == long.class) { + valueSql.append("'"); + valueSql.append(value); + valueSql.append("'"); + } else if (f.getType() == Float.class || f.getType() == float.class || + f.getType() == Double.class || f.getType() == double.class) { + valueSql.append("'"); + valueSql.append(value); + valueSql.append("'"); + } else if (f.getType() == Byte[].class || f.getType() == byte[].class) { + valueSql.append("'"); valueSql.append(value); + valueSql.append("'"); } if (i != fs.size() - 1) { fieldsSql.append(","); @@ -172,8 +202,23 @@ public class ObjectClient extends Client { sql.append("'"); sql.append(String.valueOf(value)); sql.append("'"); - } else { + } else if (f.getType() == Byte.class || f.getType() == byte.class || + f.getType() == Short.class || f.getType() == short.class || + f.getType() == Character.class || f.getType() == char.class || + f.getType() == Integer.class || f.getType() == int.class || + f.getType() == Long.class || f.getType() == long.class) { + sql.append("'"); + sql.append(value); + sql.append("'"); + } else if (f.getType() == Float.class || f.getType() == float.class || + f.getType() == Double.class || f.getType() == double.class) { + sql.append("'"); sql.append(value); + sql.append("'"); + } else if (f.getType() == Byte[].class || f.getType() == byte[].class) { + sql.append("'"); + sql.append(value); + sql.append("'"); } if (i != fs.size() - 1) { sql.append(","); @@ -271,11 +316,35 @@ public class ObjectClient extends Client { f.setAccessible(true); if (f.getType() == String.class) { - String string = resultSet.getString(f.getName()); - f.set(o, string); + String v = resultSet.getString(f.getName()); + f.set(o, v); } else if (f.getType() == Boolean.class || f.getType() == boolean.class) { - boolean b = resultSet.getBoolean(f.getName()); - f.set(o, b); + boolean v = resultSet.getBoolean(f.getName()); + f.set(o, v); + } else if (f.getType() == Byte.class || f.getType() == byte.class) { + byte v = resultSet.getByte(f.getName()); + f.set(o, v); + } else if (f.getType() == Short.class || f.getType() == short.class) { + short v = resultSet.getShort(f.getName()); + f.set(o, v); + } else if (f.getType() == Character.class || f.getType() == char.class) { + short v = resultSet.getShort(f.getName()); + f.set(o, (char)v); + } else if (f.getType() == Integer.class || f.getType() == int.class) { + int v = resultSet.getInt(f.getName()); + f.set(o, v); + } else if (f.getType() == Long.class || f.getType() == long.class) { + long v = resultSet.getLong(f.getName()); + f.set(o, v); + } else if (f.getType() == Float.class || f.getType() == float.class) { + float v = resultSet.getFloat(f.getName()); + f.set(o, v); + } else if (f.getType() == Double.class || f.getType() == double.class) { + double v = resultSet.getDouble(f.getName()); + f.set(o, v); + } else if (f.getType() == Byte[].class || f.getType() == byte[].class) { + byte[] v = resultSet.getBytes(f.getName()); + f.set(o, v); } else { String string = resultSet.getString(f.getName()); f.set(o, string); diff --git a/src/main/java/xyz/wbsite/wsqlite/entity/Example.java b/src/main/java/xyz/wbsite/wsqlite/entity/Example.java new file mode 100644 index 0000000..f6ceec8 --- /dev/null +++ b/src/main/java/xyz/wbsite/wsqlite/entity/Example.java @@ -0,0 +1,107 @@ +package xyz.wbsite.wsqlite.entity; + +import xyz.wbsite.wsqlite.anonation.TableField; + +public class Example { + + @TableField(40) + private String s; + @TableField + private boolean b; + @TableField + private byte[] bs; + @TableField + private byte b1; + @TableField + private short s1; + @TableField + private char c1; + @TableField + private int age; + @TableField + private long id; + @TableField + private float f1; + @TableField + private double d1; + + public String getS() { + return s; + } + + public void setS(String s) { + this.s = s; + } + + public boolean isB() { + return b; + } + + public void setB(boolean b) { + this.b = b; + } + + public byte[] getBs() { + return bs; + } + + public void setBs(byte[] bs) { + this.bs = bs; + } + + public byte getB1() { + return b1; + } + + public void setB1(byte b1) { + this.b1 = b1; + } + + public short getS1() { + return s1; + } + + public void setS1(short s1) { + this.s1 = s1; + } + + public char getC1() { + return c1; + } + + public void setC1(char c1) { + this.c1 = c1; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public float getF1() { + return f1; + } + + public void setF1(float f1) { + this.f1 = f1; + } + + public double getD1() { + return d1; + } + + public void setD1(double d1) { + this.d1 = d1; + } +} diff --git a/src/main/java/xyz/wbsite/wsqlite/entity/User.java b/src/main/java/xyz/wbsite/wsqlite/entity/User.java deleted file mode 100644 index 97d27ce..0000000 --- a/src/main/java/xyz/wbsite/wsqlite/entity/User.java +++ /dev/null @@ -1,37 +0,0 @@ -package xyz.wbsite.wsqlite.entity; - -import xyz.wbsite.wsqlite.anonation.TableField; - -public class User { - - @TableField(40) - private String name; - @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; - } - - public void setName(String name) { - this.name = name; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } -} diff --git a/src/test/java/WsqliteTest.java b/src/test/java/WsqliteTest.java index 33a4e7f..f667515 100644 --- a/src/test/java/WsqliteTest.java +++ b/src/test/java/WsqliteTest.java @@ -1,5 +1,5 @@ import xyz.wbsite.wsqlite.ObjectClient; -import xyz.wbsite.wsqlite.entity.User; +import xyz.wbsite.wsqlite.entity.Example; import java.io.File; import java.sql.*; @@ -10,27 +10,44 @@ public class WsqliteTest { public static void main(String[] args) { try { List arrayList = new ArrayList(); - arrayList.add(User.class); - ObjectClient h = new ObjectClient(new File("D:\\test.db"),arrayList); + arrayList.add(Example.class); + ObjectClient h = new ObjectClient(new File("D:\\test.db"), arrayList); System.out.println("测试 insert"); - User user = new User(); - user.setName("wangbing"); - user.setPassword("test"); - h.insert(User.class, user); + Example example = new Example(); + example.setS("wangbing"); + example.setB(false); + example.setBs(null); + example.setB1((byte) 1); + example.setS1((short) 1); + example.setC1((char) 1); + example.setAge(1); + example.setId(1L); + example.setF1(0.1f); + example.setD1(0.1); + + h.insert(Example.class, example); System.out.println("测试 select"); - List select = h.select(User.class,1,10); + List select = h.select(Example.class, 1, 10); System.out.println(select.size()); System.out.println("测试 update"); - user.setName("=="); - user.setPassword("=="); - int update = h.update(User.class, user); + example.setS("wangbing"); + example.setB(false); + example.setBs(null); + example.setB1((byte) 1); + example.setS1((short) 1); + example.setC1((char) 1); + example.setAge(1); + example.setId(1L); + example.setF1(0.1f); + example.setD1(0.1); + int update = h.update(Example.class, example); System.out.println(update); System.out.println("测试 delete"); - int delete = h.delete(User.class,"NAME = '=='"); + int delete = h.delete(Example.class, "s = 'wangbing'"); System.out.println(delete); } catch (ClassNotFoundException e) {