Android之SQLite数据库的使用方法

这篇博文详细记录了如何在Android应用中使用SQLite数据库,包括创建数据库和表,以及执行添加、更新、删除和查询操作。以创建黑名单数据库为例,讲解了利用SQLiteOpenHelper和SQLiteDataBase实例来管理数据。

   这篇博文是笔记,主要介绍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;
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值