wangbing 5 years ago
parent cf84d78ef0
commit d8e41e4139

@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>xyz.wbsite</groupId> <groupId>xyz.wbsite</groupId>
<artifactId>wbsqlite</artifactId> <artifactId>wsqlite</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<properties> <properties>

@ -1,8 +1,10 @@
package xyz.wbsite.wsqlite;
import java.io.File; import java.io.File;
import java.sql.*; import java.sql.*;
/** /**
* Client * xyz.wbsite.wsqlite.Client
* *
* @author wangbing * @author wangbing
*/ */

@ -1,5 +1,6 @@
import anonation.Varchar; package xyz.wbsite.wsqlite;
import xyz.wbsite.wsqlite.anonation.TableField;
import java.io.File; import java.io.File;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.sql.SQLException; import java.sql.SQLException;
@ -9,7 +10,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* Client * xyz.wbsite.wsqlite.Client
* *
* @author wangbing * @author wangbing
*/ */
@ -41,11 +42,17 @@ public class ObjectClient extends Client {
Field[] fields = object.getDeclaredFields(); Field[] fields = object.getDeclaredFields();
for (Field f : fields) { for (Field f : fields) {
if (f.isAnnotationPresent(Varchar.class)) { if (f.isAnnotationPresent(TableField.class)) {
Varchar bind = f.getAnnotation(Varchar.class); TableField bind = f.getAnnotation(TableField.class);
int length = bind.value(); int length = bind.value();
if (f.getType() == String.class) {
sql.append(f.getName().toUpperCase()); sql.append(f.getName().toUpperCase());
sql.append(" VARCHAR(" + length + "),"); 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()); fieldsSql.append(f.getName().toUpperCase());
Object value = f.get(po); Object value = f.get(po);
if (value instanceof String) { if (f.getType() == String.class) {
valueSql.append("'"); valueSql.append("'");
valueSql.append(value); valueSql.append(value);
valueSql.append("'"); valueSql.append("'");
} else if (f.getType() == Boolean.class || f.getType() == boolean.class) {
valueSql.append("'");
valueSql.append(String.valueOf(value));
valueSql.append("'");
} else { } else {
valueSql.append(value); valueSql.append(value);
} }
@ -153,10 +164,14 @@ public class ObjectClient extends Client {
sql.append(" = "); sql.append(" = ");
Object value = f.get(po); Object value = f.get(po);
if (value instanceof String) { if (f.getType() == String.class) {
sql.append("'"); sql.append("'");
sql.append(value); sql.append(value);
sql.append("'"); sql.append("'");
} else if (f.getType() == Boolean.class || f.getType() == boolean.class) {
sql.append("'");
sql.append(String.valueOf(value));
sql.append("'");
} else { } else {
sql.append(value); sql.append(value);
} }
@ -254,9 +269,18 @@ public class ObjectClient extends Client {
for (int i = 0; i < fs.size(); i++) { for (int i = 0; i < fs.size(); i++) {
Field f = fs.get(i); Field f = fs.get(i);
f.setAccessible(true); f.setAccessible(true);
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()); String string = resultSet.getString(f.getName());
f.set(o, string); f.set(o, string);
} }
}
rsList.add(o); rsList.add(o);
} catch (InstantiationException e) { } catch (InstantiationException e) {
e.printStackTrace(); e.printStackTrace();
@ -270,10 +294,10 @@ public class ObjectClient extends Client {
return rsList; return rsList;
} }
private List<Field> getFields(Class aClass){ private List<Field> getFields(Class aClass) {
List<Field> fs = new ArrayList<>(); List<Field> fs = new ArrayList<>();
for (Field f : aClass.getDeclaredFields()) { for (Field f : aClass.getDeclaredFields()) {
if (f.isAnnotationPresent(Varchar.class)) { if (f.isAnnotationPresent(TableField.class)) {
fs.add(f); fs.add(f);
} }
} }

@ -1,4 +1,4 @@
package anonation; package xyz.wbsite.wsqlite.anonation;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
@ -7,7 +7,7 @@ import java.lang.annotation.Target;
@Target(ElementType.FIELD) @Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
public @interface Varchar { public @interface TableField {
int value() default 20; int value() default 20;
} }

@ -1,13 +1,23 @@
package entity; package xyz.wbsite.wsqlite.entity;
import anonation.Varchar; import xyz.wbsite.wsqlite.anonation.TableField;
public class User { public class User {
@Varchar(40) @TableField(40)
private String name; private String name;
@Varchar(40) @TableField(40)
private String password; private String password;
@TableField
private boolean valid;
public boolean isValid() {
return valid;
}
public void setValid(boolean valid) {
this.valid = valid;
}
public String getName() { public String getName() {
return name; return name;

@ -1,11 +1,12 @@
import entity.User; import xyz.wbsite.wsqlite.ObjectClient;
import xyz.wbsite.wsqlite.entity.User;
import java.io.File; import java.io.File;
import java.sql.*; import java.sql.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class SqliteTest { public class WsqliteTest {
public static void main(String[] args) { public static void main(String[] args) {
try { try {
List<Class> arrayList = new ArrayList(); List<Class> arrayList = new ArrayList();
Loading…
Cancel
Save

Powered by TurnKey Linux.