Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android 系統API實現數據庫的增刪改查和SQLite3工具的使用,androidsqlite3

Android 系統API實現數據庫的增刪改查和SQLite3工具的使用,androidsqlite3

編輯:關於android開發

Android 系統API實現數據庫的增刪改查和SQLite3工具的使用,androidsqlite3


在《Android SQL語句實現數據庫的增刪改查》中介紹了使用sql語句來實現數據庫的增刪改查操作,本文介紹Android 系統API實現數據庫的增刪改查和SQLite3工具的使用。

系統API實現數據庫的增刪改查

相關代碼修改如下:

package com.wuyudong.db.dao;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.wuyudong.db.PersonSQLiteOpenHelper;
import com.wuyudong.db.domain.Person;

public class PersonDao {
    private PersonSQLiteOpenHelper helper;

    public PersonDao(Context context) {
        helper = new PersonSQLiteOpenHelper(context);
    }

    /**
     * 添加一條記錄到數據庫
     * 
     * @param name
     *            姓名
     * @param number
     *            電話
     */
    public void add(String name, String number) {
        SQLiteDatabase db = helper.getWritableDatabase();
        // db.execSQL("insert into person (name,number) values (?,?)",
        // new Object[] { name, number });
        ContentValues values = new ContentValues();
        values.put("name", name);
        values.put("number", number);
        db.insert("person", null, values);
        db.close();
    }

    /**
     * 查詢記錄是否存在
     * 
     * @param name
     *            姓名 return true存在, false不存在
     */
    public boolean find(String name) {
        SQLiteDatabase db = helper.getReadableDatabase();
        // Cursor cursor = db.rawQuery("select * from person where name=?",
        // new String[] { name });
        Cursor cursor = db.query("person", null, "name=?",
                new String[] { name }, null, null, null);
        boolean result = cursor.moveToNext();
        cursor.close();
        db.close();
        return result;
    }

    /**
     * 
     * @param name
     *            要修改的人的姓名
     * @param newnumber
     *            新的號碼
     */
    public void update(String name, String newnumber) {
        SQLiteDatabase db = helper.getReadableDatabase();
        // db.execSQL("update person set number=? where name=?", new Object[] {
        // newnumber, name });
        ContentValues values = new ContentValues();
        values.put("number", newnumber);
        db.update("person", values, "name=?", new String[] { newnumber });
        db.close();
    }

    /**
     * 刪除一條記錄
     * 
     * @param name
     */
    public void delete(String name) {
        SQLiteDatabase db = helper.getReadableDatabase();
        // db.execSQL("delete from person where name=?", new Object[] { name });
        db.delete("person", "name=?", new String[] { name });
        db.close();
    }

    /**
     * 返回全部的數據庫信息
     * 
     * @return
     */
    public List<Person> findAll() {
        List<Person> persons = new ArrayList<Person>();
        SQLiteDatabase db = helper.getReadableDatabase();
        // Cursor cursor = db.rawQuery("select * from person", null);
        Cursor cursor = db.query("person", new String[] { "name", "id",
                "number" }, null, null, null, null, null);
        while (cursor.moveToNext()) {
            int id = cursor.getInt(cursor.getColumnIndex("id"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            String number = cursor.getString(cursor.getColumnIndex("number"));
            Person person = new Person(id, name, number);
            persons.add(person);
        }
        cursor.close();
        db.close();
        return persons;
    }

}

兩種數據庫增刪改查方式的優缺點
1. 直接利用sql語句增刪改查
優點:非常的靈活,多表查詢,級聯查詢。
缺點:代碼容易出錯,方法沒有返回值。

2. 利用google包裝的api 執行增刪改查
優點: 代碼不容易出錯,寫起來簡單,方法有返回值
缺點: 不容易多表查詢。復雜表的操作,視圖都無法實現。

運行代碼後查看結果十分麻煩,下面介紹一種簡單的方法

SQLite3工具的使用

cmd打開命令行

輸入“adb shell” 出現如下錯誤

以為是模擬器沒開的原因,但是打開模擬器後,還是一樣的錯誤出現

進入相應目錄

繼續進入databases 目錄

輸入如下命令:

sqlite3 person.db

執行一條sql語句如下:

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved