Android之SQLite数据库的使用方法

来源:互联网 发布:mac玩梦幻西游快捷键 编辑:程序博客网 时间:2024/06/11 22:38

   这篇博文是笔记,主要介绍SQLite数据库的使用方法,这里以一个建立黑名单数据库为例子

    第一步,建立数据库

   建立数据库需要先建立一张表,然后再根据这张表建立起数据库

package com.example.administrator.telphone_cut.db;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.widget.Toast;/** * Created by A君 on 2016/3/27. */public class BlackNumberDBHelper extends SQLiteOpenHelper {    private  static BlackNumberDBHelper mInstance;    private final static String name  = "blacknumber.db";    private static Context mContext;    public static final String CREAT_BLACKNUMBER = "create table blacknumber ("            + "id integer primary key autoincrement, "            + "number text)";    public static SQLiteOpenHelper getmInstance(Context context)    {        if (mInstance == null)        {            mInstance = new BlackNumberDBHelper(context , name , null , 1);        }        return mInstance;    }    public BlackNumberDBHelper(Context context, String name,                 SQLiteDatabase.CursorFactory factory, int version) {        super(context, name, factory, version);        mContext = context;    }    @Override    public void onCreate(SQLiteDatabase db) {        db.execSQL(CREAT_BLACKNUMBER);        Toast.makeText(mContext,"success",Toast.LENGTH_LONG).show();    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {    }}

    第二步 数据库的的添加、更新、删除、查询方法。

    要实现这些要新建一个SQLiteOpenHelper的实例,在通过这个实例调用getWritableDataBase()或getReadableDataBase()方法获取到一个可操作的SQLiteDataBase实例,再进行对数据库的操作。

    1、添加

public void add(String number)    {        SQLiteDatabase db = blackNumberDBHelper.getWritableDatabase();        if (db.isOpen())        {            ContentValues values = new ContentValues();            values.put("number",number);            db.insert(name, "id", values);            values.clear();            db.close();        }    }

   2、更新
public void update(int id , String number)    {        SQLiteDatabase db = blackNumberDBHelper.getWritableDatabase();        if (db.isOpen())        {            ContentValues values = new ContentValues();            values.put("number",number);            db.update(name, values, "id = ?", new String[]{id + ""});            db.close();        }    }

    3、删除

public  void delete(String number)    {        SQLiteDatabase db = blackNumberDBHelper.getWritableDatabase();        if (db.isOpen())        {            db.delete(name , "number = ?" , new String[]{number});            db.close();        }    }

   4、查询

   (1)判断是否在表里

public  boolean isblacknumber(String number)    {        boolean isExist = false;        SQLiteDatabase db = blackNumberDBHelper.getReadableDatabase();        if (db.isOpen())        {            Cursor cursor = db.query(name , new String[]{"id"} , "number = ?",new String[]{number} ,                                     null , null , null);            if (cursor.moveToFirst())            {                isExist = true;            }            cursor.close();            db.close();        }        return isExist;    }
    (2)根据一个数据查另外一个数据

public int queryid(String number)    {        SQLiteDatabase db = blackNumberDBHelper.getReadableDatabase();        int id = 0 ;        if (db.isOpen())        {            Cursor cursor = db.query(name , new String[]{"id"} , "number = ?",new String[]{number} ,                    null , null , null);            if (cursor.moveToFirst())            {                id = cursor.getInt(0);            }        }        return id;    }

    (3)遍历

public List<String> findall()    {        List<String> balcknumber = new ArrayList<String>();        SQLiteDatabase db = blackNumberDBHelper.getReadableDatabase();        if (db.isOpen())        {            Cursor cursor = db.query(name,new String[]{"number"},null,null,null,null,null);            while (cursor.moveToNext())            {                String number = cursor.getString(cursor.getColumnIndex("number"));                balcknumber.add(number);            }            cursor.close();            db.close();        }        return balcknumber;    }


0 0