Android中資料庫的使用

2021-09-24 19:14:01 字數 3842 閱讀 8812

之前我部落格中提到了簡單字串資料可以通過共享引數的方式儲存在本地,這也是android中主要的一種資料持久化的方法。不過這種儲存方法有個問題,乙個是資料不能過多,另乙個就是多條關聯資料不好儲存。這時我們就會很羨慕後台的資料庫了。不過沒有關係,android也為我們準備了乙個輕量級的資料庫,並為我們提供了相關的操作介面。

public class userdbhelper extends sqliteopenhelper 

private userdbhelper(context context, int version)

/*** 單例獲取helper物件

** @param context

* @param version

* @return

*/public static userdbhelper getinstance(context context, int version) else if (mhelper == null)

return mhelper;

}/**

* 通過讀鏈結獲取sqlitedatabase

** @return

*/public sqlitedatabase openreadlink()

return mdb;

}/**

* 通過寫鏈結獲取sqlitedatabase

** @return

*/public sqlitedatabase openwritelink()

return mdb;

}/**

* 關閉資料庫

*/public void closelink()

}/**

* 獲取資料庫名稱

** @return

*/public string getdbname() else

}/**

* 只在第一次開啟資料庫時執行,再此可進行表結構建立的操作

** @param db

*/@override

public void oncreate(sqlitedatabase db)

/*** 在資料庫版本公升高時執行,可以根據新舊版本號進行表結構變更處理

** @param db

* @param oldversion

* @param newversion

*/@override

public void onupgrade(sqlitedatabase db, int oldversion, int newversion)

}/**

* 根據條件刪除資料

** @param condition

* @return

*/public int delete(string condition)

return count;

}/**

* 刪除全部資料

** @return

*/public int deleteall()

/*** 增加單條資料,其實就是包裝了一下呼叫增加多條資料

** @param info

* @return

*/public long insert(userinfo info)

/*** 根據條件進行查詢

** @param condition

* @return

*/public arraylistquery(string condition) }}

cursor.close();

return infoarray;

}/**

* 更新多條資料

** @param info

* @param condition

* @return

*/public int update(userinfo info, string condition)

/*** 更新指定的資料條目

** @param info

* @return

*/public int update(userinfo info)

/*** 增加多條資料

** @param infoarray

* @return

*/public long insert(arraylistinfoarray)

}//如果不存在唯一性重複的記錄,就插入新記錄

contentvalues cv = new contentvalues();

cv.put("name", info.getname());

cv.put("age", info.getage());

cv.put("height", info.getheight());

cv.put("weight", info.getweight());

cv.put("married", info.ismarried());

cv.put("update_time", info.getupdate_time());

cv.put("phone",info.getphone());

cv.put("password",info.getpassword());

result = mdb.insert(table_name, "", cv);

//新增成功後返回行號,失敗則返回-1

if (result == -1)

}return result;

}}

下面是在對應的邏輯中進行的使用

userdbhelper userdbhelper = userdbhelper.getinstance(this,0);

userdbhelper.openwritelink();

arraylistinfolist = new arraylist<>();

userinfo userinfo = new userinfo();

userinfo.setxuhao(10);

userinfo.setname("小紅");

userinfo.setupdate_time("2018-11-24");

userinfo.setmarried(false);

userinfo.setage(99);

userinfo.setweight(100);

userinfo.setheight(180);

userinfo.setphone("15835133570");

userinfo.setpassword("sdfsd");

infolist.add(userinfo);

userinfo userinfo1 = new userinfo();

userinfo1.setxuhao(11);

userinfo1.setname("小雅");

userinfo1.setupdate_time("2018-11-26");

userinfo1.setmarried(true);

userinfo1.setage(34);

userinfo1.setweight(34);

userinfo1.setheight(34);

userinfo1.setphone("15536935920");

userinfo1.setpassword("sdfsd");

infolist.add(userinfo1);

long result = userdbhelper.insert(infolist);

userdbhelper.openreadlink();

userdbhelper.query("1==1");

具體其他使用不在這裡贅述,只提供了簡單的初級使用方法,

Android使用的SQLite資料庫

sqlite允許忽略資料型別,但是,仍然建議在create table語句中指定資料型別,因為資料型別有利於增強程式的可讀性。sqlite支援常見的資料型別,如varchar nvarchar text integer float boolean clob blob timestamp numeri...

android開發 資料庫的使用

sqlite是輕量級嵌入式資料庫引擎,它支援 sql 語言,並且只利用很少的記憶體就有很好的效能。此外它還是開源的,任何人都可以使用它。許多開源專案 mozilla,php,python 都使用了 sqlite,sqlite 由以下幾個元件組成 sql 編譯器 核心 後端以及附件。sqlite 通過...

android 資料庫的基本使用

建立資料庫表 public class databasetable public string getculumns public string getsqlcrate public string gettablename public string getid public string getm...