日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

DButils数据库升级不丢失数据

發(fā)布時(shí)間:2025/4/5 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DButils数据库升级不丢失数据 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

如果版本升級(jí),表中新增了某個(gè)字段,如何在不刪除表的情況下順利過(guò)渡,如果不做處理,數(shù)據(jù)庫(kù)就會(huì)報(bào)錯(cuò),沒(méi)有新添加的列。修改數(shù)據(jù)庫(kù)的創(chuàng)建方式,實(shí)現(xiàn)升級(jí)接口。

?

1 db = DbUtils.create(context, "myXutils.sqlite", 2 DBVERSION, new DbUpgradeListener() { 3 4 @Override 5 public void onUpgrade(DbUtils db, int oldVersion, 6 int newVersion) { 7 if (newVersion > oldVersion) { 8 updateDb(db, "mytable"); 9 } 10 } 11 });

?

1 protected void updateDb(DbUtils db, String tableName) { 2 try { 3 // 把要使用的類(lèi)加載到內(nèi)存中,并且把有關(guān)這個(gè)類(lèi)的所有信息都存放到對(duì)象c中 4 Class<EntityBase> c = (Class<EntityBase>) Class 5 .forName("com.myxutils.entity" + tableName); 6 if (db.tableIsExist(c)) { 7 List<String> dbList = new ArrayList<String>(); 8 String sql = "select * from" + tableName; 9 Cursor cursor = db.execQuery(sql); 10 int count = cursor.getColumnCount(); 11 for (int i = 0; i < count; i++) { 12 dbList.add(cursor.getColumnName(i)); 13 } 14 cursor.close(); 15 // 把屬性的信息提取出來(lái),并且存放到field類(lèi)的對(duì)象中,因?yàn)槊總€(gè)field的對(duì)象只能存放一個(gè)屬性的信息所以要用數(shù)組去接收 16 Field f[] = c.getDeclaredFields(); 17 for (int i = 0; i < f.length; i++) { 18 String fildName = f[i].getName(); 19 if (fildName.equals("serialVersionUID")) { 20 continue; 21 } 22 String fildType = f[i].getType().toString(); 23 if (!dbList.contains(fildName)) { 24 if (fildType.equals("class.Java.lang.String")) { 25 db.execNonQuery("alter table " + tableName + "add" 26 + fildName + "TEXT"); 27 } else if (fildType.equals("int") 28 || fildType.equals("long") 29 || fildType.equals("boolean")) { 30 db.execNonQuery("alter table " + tableName + "add" 31 + fildName + "INTEGER"); 32 } 33 } 34 } 35 } 36 } catch (ClassNotFoundException e) { 37 e.printStackTrace(); 38 } catch (DbException e) { 39 e.printStackTrace(); 40 } 41 42 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/tutuskys/p/5089290.html

總結(jié)

以上是生活随笔為你收集整理的DButils数据库升级不丢失数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。