鎴戠殑android 绗?3澶?-SQLiteOpenHelper瀵规暟鎹?簱杩涜?鐗堟湰绠$悊
聽
鎴戜滑鍦ㄧ紪鍐欐暟鎹?簱搴旂敤杞?欢鏃讹紝闇?瑕佽?冭檻杩欐牱鐨勯棶棰橈細鍥犱负鎴戜滑寮?鍙戠殑杞?欢鍙?兘浼氬畨瑁呭湪寰堝?鐢ㄦ埛鐨勬墜鏈轰笂锛屽?鏋滃簲鐢ㄤ娇鐢ㄥ埌浜哠QLite鏁版嵁搴擄紝鎴戜滑蹇呴』鍦ㄧ敤鎴峰垵娆′娇鐢ㄨ蒋浠舵椂鍒涘缓鍑哄簲鐢ㄤ娇鐢ㄥ埌鐨勬暟鎹?簱琛ㄧ粨鏋勫強娣诲姞涓?浜涘垵濮嬪寲璁板綍锛屽彟澶栧湪杞?欢鍗囩骇鐨勬椂鍊欙紝涔熼渶瑕佸?鏁版嵁琛ㄧ粨鏋勮繘琛屾洿鏂般?傞偅涔堬紝鎴戜滑濡備綍鎵嶈兘瀹炵幇鍦ㄧ敤鎴峰垵娆′娇鐢ㄦ垨鍗囩骇杞?欢鏃惰嚜鍔ㄥ湪鐢ㄦ埛鐨勬墜鏈轰笂鍒涘缓鍑哄簲鐢ㄩ渶瑕佺殑鏁版嵁搴撹〃鍛?紵鎬讳笉鑳借?鎴戜滑鍦ㄦ瘡涓?渶瑕佸畨瑁呮?杞?欢鐨勬墜鏈轰笂閫氳繃鎵嬪伐鏂瑰紡鍒涘缓鏁版嵁搴撹〃鍚э紵鍥犱负杩欑?闇?姹傛槸姣忎釜鏁版嵁搴撳簲鐢ㄩ兘瑕侀潰涓寸殑锛屾墍浠ュ湪Android绯荤粺锛屼负鎴戜滑鎻愪緵浜嗕竴涓?悕涓篠QLiteOpenHelper鐨勬娊璞$被锛屽繀椤荤户鎵垮畠鎵嶈兘浣跨敤锛屽畠鏄??氳繃瀵规暟鎹?簱鐗堟湰杩涜?绠$悊鏉ュ疄鐜板墠闈㈡彁鍑虹殑闇?姹傘??/span>
涓轰簡瀹炵幇瀵规暟鎹?簱鐗堟湰杩涜?绠$悊锛孲QLiteOpenHelper绫绘彁渚涗簡涓や釜閲嶈?鐨勬柟娉曪紝鍒嗗埆鏄痮nCreate(SQLiteDatabase db)鍜宱nUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)锛屽墠鑰呯敤浜庡垵娆′娇鐢ㄨ蒋浠舵椂鐢熸垚鏁版嵁搴撹〃锛屽悗鑰呯敤浜庡崌绾ц蒋浠舵椂鏇存柊鏁版嵁搴撹〃缁撴瀯銆傚綋璋冪敤SQLiteOpenHelper鐨刧etWritableDatabase()鎴栬?単etReadableDatabase()鏂规硶鑾峰彇鐢ㄤ簬鎿嶄綔鏁版嵁搴撶殑SQLiteDatabase瀹炰緥鐨勬椂鍊欙紝濡傛灉鏁版嵁搴撲笉瀛樺湪锛孉ndroid绯荤粺浼氳嚜鍔ㄧ敓鎴愪竴涓?暟鎹?簱锛屾帴鐫?璋冪敤onCreate()鏂规硶锛宱nCreate()鏂规硶鍦ㄥ垵娆$敓鎴愭暟鎹?簱鏃舵墠浼氳?璋冪敤锛屽湪onCreate()鏂规硶閲?span style="color: red;" class="Apple-style-span">鍙?互鐢熸垚鏁版嵁搴撹〃缁撴瀯鍙婃坊鍔犱竴浜涘簲鐢ㄤ娇鐢ㄥ埌鐨勫垵濮嬪寲鏁版嵁銆俹nUpgrade()鏂规硶鍦ㄦ暟鎹?簱鐨勭増鏈?彂鐢熷彉鍖栨椂浼氳?璋冪敤锛屼竴鑸?湪杞?欢鍗囩骇鏃舵墠闇?鏀瑰彉鐗堟湰鍙?/span>锛岃?屾暟鎹?簱鐨勭増鏈?槸鐢辩▼搴忓憳鎺у埗鐨勶紝鍋囪?鏁版嵁搴撶幇鍦ㄧ殑鐗堟湰鏄?锛岀敱浜庝笟鍔$殑鍙樻洿锛屼慨鏀逛簡鏁版嵁搴撹〃缁撴瀯锛岃繖鏃跺?欏氨闇?瑕佸崌绾ц蒋浠讹紝鍗囩骇杞?欢鏃跺笇鏈涙洿鏂扮敤鎴锋墜鏈洪噷鐨勬暟鎹?簱琛ㄧ粨鏋勶紝涓轰簡瀹炵幇杩欎竴鐩?殑锛屽彲浠ユ妸鍘熸潵鐨勬暟鎹?簱鐗堟湰璁剧疆涓?(鏈夊悓瀛﹂棶璁剧疆涓?琛屼笉琛岋紵褰撶劧鍙?互锛屽?鏋滀綘鎰挎剰锛岃?缃?负100涔熻?)锛屽苟涓斿湪onUpgrade()鏂规硶閲岄潰瀹炵幇琛ㄧ粨鏋勭殑鏇存柊銆傚綋杞?欢鐨勭増鏈?崌绾ф?鏁版瘮杈冨?锛岃繖鏃跺湪onUpgrade()鏂规硶閲岄潰鍙?互鏍规嵁鍘熺増鍙峰拰鐩?爣鐗堟湰鍙疯繘琛屽垽鏂?紝鐒跺悗浣滃嚭鐩稿簲鐨勮〃缁撴瀯鍙婃暟鎹?洿鏂般??/span>
getWritableDatabase()鍜実etReadableDatabase()鏂规硶閮藉彲浠ヨ幏鍙栦竴涓?敤浜庢搷浣滄暟鎹?簱鐨凷QLiteDatabase瀹炰緥銆備絾getWritableDatabase()鏂规硶浠ヨ?鍐欐柟寮忔墦寮?鏁版嵁搴擄紝涓?鏃︽暟鎹?簱鐨勭?鐩樼┖闂存弧浜嗭紝鏁版嵁搴撳氨鍙?兘璇昏?屼笉鑳藉啓锛屽?樿嫢浣跨敤鐨勬槸getWritableDatabase() 鏂规硶灏变細鍑洪敊銆俫etReadableDatabase()鏂规硶鍏堜互璇诲啓鏂瑰紡鎵撳紑鏁版嵁搴擄紝濡傛灉鏁版嵁搴撶殑纾佺洏绌洪棿婊′簡锛屽氨浼氭墦寮?澶辫触锛屽綋鎵撳紑澶辫触鍚庝細缁х画灏濊瘯浠ュ彧璇绘柟寮忔墦寮?鏁版嵁搴撱??/span>
聽
public class DatabaseHelper extends SQLiteOpenHelper {
聽聽聽 //绫绘病鏈夊疄渚嬪寲,鏄?笉鑳界敤浣滅埗绫绘瀯閫犲櫒鐨勫弬鏁?/span>,蹇呴』澹版槑涓洪潤鎬?/span>
聽聽聽聽聽聽聽聽聽private static final String name = "itcast";//鏁版嵁搴撳悕绉?/span>
聽聽聽聽聽聽聽聽聽private static final聽int聽version = 1; //鏁版嵁搴撶増鏈?/span>
聽聽聽聽聽聽聽聽 publicDatabaseHelper(Context context) {
//绗?笁涓?弬鏁?/span>CursorFactory鎸囧畾鍦ㄦ墽琛屾煡璇㈡椂鑾峰緱涓?涓?父鏍囧疄渚嬬殑宸ュ巶绫?/span>,璁剧疆涓?/span>null,浠h〃浣跨敤绯荤粺榛樿?鐨勫伐鍘傜被
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽super(context, name, null, version);
聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 @Override public void onCreate(SQLiteDatabase db) {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽db.execSQL("CREATETABLE IF NOT EXISTS person (personidinteger primary key聽autoincrement,name聽varchar(20),age INTEGER)");聽聽
聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽db.execSQL("DROPTABLE IF EXISTS person");
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽onCreate(db);
聽聽聽聽聽聽聽聽 }
}
涓婇潰onUpgrade()鏂规硶鍦ㄦ暟鎹?簱鐗堟湰姣忔?鍙戠敓鍙樺寲鏃堕兘浼氭妸鐢ㄦ埛鎵嬫満涓婄殑鏁版嵁搴撹〃鍒犻櫎锛岀劧鍚庡啀閲嶆柊鍒涘缓銆備竴鑸?湪瀹為檯椤圭洰涓?槸涓嶈兘杩欐牱鍋氱殑锛屾?纭?殑鍋氭硶鏄?湪鏇存柊鏁版嵁搴撹〃缁撴瀯鏃讹紝杩樿?鑰冭檻鐢ㄦ埛瀛樻斁浜庢暟鎹?簱涓?殑鏁版嵁涓嶄細涓㈠け銆?/span>
聽
涓嬭浇瑙嗛?浠g爜
聽