diff --git a/data/ORM/entry/src/main/java/ohos/samples/orm/model/BookUpgrade.java b/data/ORM/entry/src/main/java/ohos/samples/orm/model/BookUpgrade.java index 0cdd27b90c5cb4c63ffdec50947ea4b165ffb37f..176ee0446e02ab7145dce22db2fa4c7b701a8156 100644 --- a/data/ORM/entry/src/main/java/ohos/samples/orm/model/BookUpgrade.java +++ b/data/ORM/entry/src/main/java/ohos/samples/orm/model/BookUpgrade.java @@ -28,9 +28,8 @@ import static ohos.data.orm.annotation.ForeignKey.CASCADE; * * @since 2021-06-15 */ -@Entity(tableName = "BookUpgrade", foreignKeys = { - @ForeignKey(name = "BookUser", parentEntity = UserUpgrade.class, - parentColumns = "userId", childColumns = "user_id", +@Entity(tableName = "Book", foreignKeys = { + @ForeignKey(name = "BookUser", parentEntity = UserUpgrade.class, parentColumns = "userId", childColumns = "user_id", onDelete = CASCADE)}) public class BookUpgrade extends OrmObject { @PrimaryKey(autoGenerate = true) diff --git a/data/ORM/entry/src/main/java/ohos/samples/orm/slice/OrmContextSlice.java b/data/ORM/entry/src/main/java/ohos/samples/orm/slice/OrmContextSlice.java index f65dacdd7d5d0bc0763c7d0460b2e64cf643e435..0cf15be8861d261f266789888eed5dc6310c5994 100644 --- a/data/ORM/entry/src/main/java/ohos/samples/orm/slice/OrmContextSlice.java +++ b/data/ORM/entry/src/main/java/ohos/samples/orm/slice/OrmContextSlice.java @@ -25,6 +25,7 @@ import ohos.data.orm.OrmContext; import ohos.data.orm.OrmMigration; import ohos.data.orm.OrmObjectObserver; import ohos.data.orm.OrmPredicates; +import ohos.data.preferences.Preferences; import ohos.data.rdb.RdbStore; import ohos.hiviewdfx.HiLog; import ohos.hiviewdfx.HiLogLabel; @@ -35,6 +36,7 @@ import ohos.samples.orm.model.User; import ohos.samples.orm.model.UserUpgrade; import ohos.samples.orm.model.BookUpgrade; +import java.io.File; import java.security.SecureRandom; import java.util.List; @@ -52,6 +54,8 @@ public class OrmContextSlice extends AbilitySlice { private Component upgradeButton; + private Preferences preferences; + @Override protected void onStart(Intent intent) { super.onStart(intent); @@ -175,6 +179,11 @@ public class OrmContextSlice extends AbilitySlice { private void restore(Component component) { OrmContext ormContext = helper.getOrmContext("OrmTestDB", "OrmTestDB.db", BookStore.class); + File file = new File(getDatabaseDir() + "/backup/OrmTestDBBackup.db"); + if (!file.exists()) { + logText.setText("restore the database first"); + return; + } if (ormContext.restore("OrmTestDBBackup.db")) { logText.setText("restoreDB success"); } else { @@ -204,9 +213,22 @@ public class OrmContextSlice extends AbilitySlice { ormContext.close(); } + private Preferences getPreferences() { + if (preferences == null) { + DatabaseHelper databaseHelper = new DatabaseHelper(getApplicationContext()); + preferences = databaseHelper.getPreferences("app_preference.xml"); + } + return preferences; + } + private void upgrade(Component component) { logText.setText(""); - testOrmMigration(); + String isUpgrade = getPreferences().getString("upgrade", "fail"); + if (isUpgrade.equals("success")) { + logText.setText("upgraded"); + } else { + testOrmMigration(); + } } /** @@ -223,21 +245,21 @@ public class OrmContextSlice extends AbilitySlice { userUpgrade.setAge(41); userUpgrade.setBalance(3.44); boolean isSuccess = context.insert(userUpgrade); - HiLog.info(LABEL_LOG,"UserUpgrade insert " + isSuccess); + HiLog.info(LABEL_LOG, "UserUpgrade insert " + isSuccess); BookUpgrade bookUpgrade = new BookUpgrade(); bookUpgrade.setId(101); bookUpgrade.setAddColumn12(8); bookUpgrade.setName("OrmTestDBBook"); isSuccess = context.insert(bookUpgrade); - HiLog.info(LABEL_LOG,"BookUpgrade insert " + isSuccess); + HiLog.info(LABEL_LOG, "BookUpgrade insert " + isSuccess); context.flush(); OrmPredicates predicates = context.where(BookUpgrade.class).equalTo("name", "OrmTestDBBook"); List bookUpgradeList = context.query(predicates); int id = bookUpgradeList.get(0).getId(); - HiLog.info(LABEL_LOG,"bookUpgradeList.get(0).getId() =" + id); + HiLog.info(LABEL_LOG, "bookUpgradeList.get(0).getId() =" + id); context.close(); - upgradeButton.setClickable(false); logText.setText("upgrade success"); + getPreferences().putString("upgrade", "success"); } private static class TestOrmMigration12 extends OrmMigration { @@ -276,7 +298,6 @@ public class OrmContextSlice extends AbilitySlice { @Override public void onMigrate(RdbStore store) { HiLog.info(LABEL_LOG, "DataBase Version 2->3 onMigrate called"); - store.executeSql("ALTER TABLE `Book` RENAME TO `BookUpgrade`"); } } diff --git a/data/ORM/entry/src/main/resources/zh/element/string.json b/data/ORM/entry/src/main/resources/zh/element/string.json index 762e9d2980460ae803c875732599c63edbcf0b2a..278c687a5f8779d5f782b496cf6cabad8a18dcb7 100644 --- a/data/ORM/entry/src/main/resources/zh/element/string.json +++ b/data/ORM/entry/src/main/resources/zh/element/string.json @@ -26,7 +26,7 @@ }, { "name": "upgrade", - "value": "更新" + "value": "升级" }, { "name": "backupDB",