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