今天突然想到我們
android
版本公升級的時候經常會遇到公升級版本的時候在新版本中
資料庫可能會修改,今天我們就以資料庫公升級且表新增新列為例子寫乙個
測試程式。
首先在要建立乙個資料庫,一般我們先建立乙個dbhelper,繼承sqliteopenhelper,建構函式我們使用傳遞版本號的:
public dbhelper(context context, string name, int version)我們在activity中初始化dbhelper傳入當前應用的版本號,
try catch (exception e)我們通過檢視sqliteopenhelpe原始碼知道,當我們呼叫mydbhelper = new dbhelper(this,dbhelper.db_name
,ver);
db= mydbhelper.getwritabledatabase();
getwritabledatabase()時,會呼叫
getdatabaselocked(boolean writable)方法,往下面看可以看到當版本號大於當前的時候會呼叫onupgrade方法,我們可以在這裡做公升級資料庫操作:
final int version = db.getversion();因此我在onupgrade方法中做了表新增新列操作如下:if (version != mnewversion)
db.begintransaction();
try else else
}db.setversion(mnewversion);
db.settransactionsuccessful();
} finally
@override這樣執行完之後就會多一列talknumber,public void
onupgrade(sqlitedatabase db, int oldversion, int newversion)
}
select * from sqlite_master where type="table" and name="local_picc_talk";
table|local_picc_talk|local_picc_talk|9|create table local_picc_talk (id integer
primary key autoincrement,case_no varchar(60),user_no varchar(60),user_name var
char(60),car_no varchar(60),task_work_id varchar(60),talk_content varchar(1000),
time varchar(60),with_talk_no varchar(60),with_talk_name varchar(60), talknumber
varchar(20), unique (id))
sqlite> select * from local_picc_talk;
這樣就完成了版本公升級的時候資料庫公升級,並且為表新增新的一列。
demo**在:
android 資料庫 公升級設計
很久以前設計的資料庫建立與公升級的方法,此設計避免了公升級的時候需要多處修改的弊端。如下 public class dbadatper 資料庫名 private static final string database name test 建表語句 此部分只是使用者第一次安裝的時候會在oncreat...
Android中資料庫公升級說明
1.幫助文件裡說的 資料庫公升級 是指什麼?你開發了乙個程式,當前是1.0版本。該程式用到了資料庫。到1.1版本時,你在資料庫的某個表中增加了乙個字段。那麼軟體1.0版本用的資料庫在軟體1.1版本就要被公升級了。2.資料庫公升級應該注意什麼?軟體的1.0版本公升級到1.1版本時,老的資料不能丟。那麼...
Android中資料庫公升級說明
1.幫助文件裡說的 資料庫公升級 是指什麼?你開發了乙個程式,當前是1.0版本。該程式用到了資料庫。到1.1版本時,你在資料庫的某個表中增加了乙個字段。那麼軟體1.0版本用的資料庫在軟體1.1版本就要被公升級了。2.資料庫公升級應該注意什麼?軟體的1.0版本公升級到1.1版本時,老的資料不能丟。那麼...