android sqlite database

來源:互聯網
上載者:User

標籤:android   sqlite   database   

好吧,現在來看一下在android裡面使用sqlite資料庫的一些基本操作吧。

對於大多數app而言對資料庫的要求很簡單,無非CURD,僅此而已。而我個人比較喜歡將所要使用的相應資料    表封裝成javabean再進行操作,這樣會顯得邏輯比較清晰。

首先,我們寫一個Entity:

package wenyue.justdoit.entity;public class todoData {private String todotadkname;private int id;public int getId() {    return id;}public void setId(int id) {    this.id = id;}public todoData() {}public String getTodotadkname() {    return todotadkname;}public void setTodotadkname(String todotadkname) {    this.todotadkname = todotadkname;}}

在這之後呢,我們需要一個繼承了SQLiteOpenHelper的工具類。在這之後,我們只需要在進行對entity進行資料庫操作的時候對其進行執行個體化即可。

SQLiteOpenHelper需要重寫onCreate,onUpgrade方法。android已經對sqlite資料庫的操作進行了封裝,所以若是你想要更深入瞭解資料庫操作,可以參考JDBC的使用。OnCreate再首次建立資料庫時調用。而我們要進行資料庫操作時可用SQLiteDatabase db = this.getWritableDatabase()。文檔說該方法使db獲得了寫資料庫的許可權,感覺其實就是拿到了相應資料庫的廉潔實體。

那麼下面就直接貼出繼承了SQLiteOpenHelper的工具類代碼吧,畢竟都是些很簡單的東西,看方法名就能知道是幹什麼的了。

package wenyue.justdoit.util;import java.util.ArrayList;import java.util.List;import wenyue.justdoit.entity.todoData;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;public class dbHelper extends SQLiteOpenHelper {private static final int DATABASE_VERSION = 1;// Database Nameprivate static final String DATABASE_NAME = "todolistManager";// tasks table nameprivate static final String TABLE_TASKS = "todolist";// tasks Table Columns namesprivate static final String KEY_ID = "id";private static final String KEY_TASKNAME = "todotadkname";public dbHelper(Context context) {    super(context, DATABASE_NAME, null, DATABASE_VERSION);    // TODO Auto-generated constructor stub}@Overridepublic void onCreate(SQLiteDatabase db) {    String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_TASKS + " ( "            + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "            + KEY_TASKNAME + " TEXT" + ")";    db.execSQL(sql);    // db.close();}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {    db.execSQL("DROP TABLE IF EXISTS " + TABLE_TASKS);    // Create tables again    onCreate(db);}public void save(todoData testdata) {    SQLiteDatabase db = this.getWritableDatabase();    ContentValues values = new ContentValues();    values.put(KEY_TASKNAME, testdata.getTodotadkname());    db.insert(TABLE_TASKS, null, values);    db.close();}public List<todoData> getAllTasks() {    List<todoData> taskList = new ArrayList<todoData>();    // Select All Query    String selectQuery = "SELECT  * FROM " + TABLE_TASKS;    SQLiteDatabase db = this.getWritableDatabase();    Cursor cursor = db.rawQuery(selectQuery, null);    // looping through all rows and adding to list    if (cursor.moveToFirst()) {        do {            todoData task = new todoData();            task.setId(cursor.getInt(0));            task.setTodotadkname(cursor.getString(1));            // Adding contact to list            taskList.add(task);        } while (cursor.moveToNext());    }    db.close();    return taskList;}public int checkIsExits(String s) {    List<todoData> taskList = new ArrayList<todoData>();    String selectQuery = "SELECT * FROM " + TABLE_TASKS + " WHERE "            + KEY_TASKNAME + " = ?";    SQLiteDatabase db = this.getWritableDatabase();    Cursor cursor = db.rawQuery(selectQuery, new String[] { s });    if (cursor.moveToFirst()) {        do {            todoData task = new todoData();            task.setId(cursor.getInt(0));            task.setTodotadkname(cursor.getString(1));            // Adding contact to list            taskList.add(task);        } while (cursor.moveToNext());    }    Log.i("checkIsExits", String.valueOf(taskList.size()));    db.close();    return taskList.size();}public int getTaskID(String tsakName) {    List<todoData> taskList = new ArrayList<todoData>();    String selectQuery = "SELECT * FROM " + TABLE_TASKS + " WHERE "            + KEY_TASKNAME + " = ?";    SQLiteDatabase db = this.getWritableDatabase();    Cursor cursor = db.rawQuery(selectQuery, new String[] { tsakName });    if (cursor.moveToFirst()) {        do {            todoData task = new todoData();            task.setId(cursor.getInt(0));            task.setTodotadkname(cursor.getString(1));            // Adding contact to list            taskList.add(task);        } while (cursor.moveToNext());    }    Log.i("GET_TASK_ID", String.valueOf(taskList.get(0).getId()));    db.close();    return taskList.get(0).getId();}public void updateTask(String taskName, int id) {    Log.i("updateTask", String.valueOf(id) + "-------------" + taskName);    // updating row    SQLiteDatabase db = this.getWritableDatabase();    ContentValues values = new ContentValues();    values.put(KEY_TASKNAME, taskName);    String[] args = { String.valueOf(id) };    db.update(TABLE_TASKS, values, KEY_ID + " = ?", args);    Log.i("UPDATESUCCESS", String.valueOf(id));    db.close();}public void deleteTask(String taskname) {    SQLiteDatabase db = this.getWritableDatabase();    String[] args = { String.valueOf(taskname) };    db.delete(TABLE_TASKS, KEY_TASKNAME + "=?", args);    db.close();}}

至於具體的資料處理就不用多說了吧,大家拿到執行個體後,調用相應的方法即可。好吧,先寫這麼多了。

android sqlite database

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.