diff --git a/app/src/main/assets/migrations/1.sql b/app/src/main/assets/migrations/1.sql
index 286bd95..a23d093 100644
--- a/app/src/main/assets/migrations/1.sql
+++ b/app/src/main/assets/migrations/1.sql
@@ -1,3 +1,3 @@
ALTER table message add COLUMN test TEXT
-UPDATE message SET test = 'sql默认' WHERE tes t= NULL--试过了,执行了,但是没有结果,并没有更新数据库内容,可以使用下面的语句代替 尽量不要使用注释
-UPDATE message SET test = '' WHERE tes t= NULL
\ No newline at end of file
+UPDATE message SET test = 'sql默认' WHERE test= NULL--试过了,执行了,但是没有结果,并没有更新数据库内容,可以使用下面的语句代替 尽量不要使用注释
+UPDATE message SET test = '' WHERE test= NULL
diff --git a/app/src/main/java/com/shunzhi/parent/annotation/AddColumn.java b/app/src/main/java/com/shunzhi/parent/annotation/AddColumn.java
new file mode 100644
index 0000000..7c1de6b
--- /dev/null
+++ b/app/src/main/java/com/shunzhi/parent/annotation/AddColumn.java
@@ -0,0 +1,19 @@
+package com.shunzhi.parent.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Created by 10501 on 2018/3/28.
+ * 升级数据库版本使用,在新加字段时添加此注解
+ * 只写了int类型和String类型的,其他需要的话自己写吧
+ * 如果我没写完,谁想用谁写吧
+ *
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface AddColumn {
+ int version();
+}
diff --git a/app/src/main/java/com/shunzhi/parent/annotation/VersionHelper.java b/app/src/main/java/com/shunzhi/parent/annotation/VersionHelper.java
new file mode 100644
index 0000000..187b0cf
--- /dev/null
+++ b/app/src/main/java/com/shunzhi/parent/annotation/VersionHelper.java
@@ -0,0 +1,50 @@
+package com.shunzhi.parent.annotation;
+
+import android.text.TextUtils;
+import android.util.SparseArray;
+
+import org.greenrobot.greendao.annotation.Entity;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+
+import timber.log.Timber;
+
+/**
+ * Created by 10501 on 2018/3/28.
+ */
+
+public class VersionHelper {
+ private static final String sql_insert = "ALTER table %s INSERT ADD COLUMN %s %s";
+ private static final String sql_update = "UPDATE table message SET %s = '%s' WHERE %s = '%s'";
+
+ public static SparseArray> init(Class clazz,String dbName) {
+ SparseArray> array = new SparseArray<>();
+ Field[] fields = clazz.getDeclaredFields();
+ for (Field field : fields) {
+ AddColumn column = field.getAnnotation(AddColumn.class);
+ if (column != null) {
+ Timber.i("---==== :fieldName= %s version :%s fieldClass : %s", field.getName()
+ , column.version(), field.getType());
+ Integer version = column.version();
+ List sqlList = array.get(version);
+ if (sqlList == null) {
+ sqlList = new ArrayList<>();
+ array.put(version, sqlList);
+ }
+ if (field.getType().getSimpleName().equalsIgnoreCase("string")) {
+ String sql = String.format(sql_insert, dbName, field.getName(), "TEXT");
+ sqlList.add(sql);
+ } else if ("integer".equalsIgnoreCase(field.getType().getSimpleName())) {
+ String sql = String.format(sql_insert, dbName, field.getName(), "INTEGER");
+ sqlList.add(sql);
+ } else {
+ //其他类型使用到的时候再写
+ Timber.i("类型检测失败");
+ }
+ }
+ }
+ return array;
+ }
+}
diff --git a/app/src/main/java/com/shunzhi/parent/annotation/VersionTest.java b/app/src/main/java/com/shunzhi/parent/annotation/VersionTest.java
new file mode 100644
index 0000000..f2eb7e9
--- /dev/null
+++ b/app/src/main/java/com/shunzhi/parent/annotation/VersionTest.java
@@ -0,0 +1,16 @@
+package com.shunzhi.parent.annotation;
+
+/**
+ * Created by 10501 on 2018/3/28.
+ */
+
+public class VersionTest {
+ @AddColumn(version = 1)
+ private String name;
+
+ @AddColumn(version = 2)
+ Integer age;
+
+ String area;
+
+}
--
libgit2 0.21.0