1.首先需要一个自己的数据库
2.写内容提供者继承自ContentProvider
package com.example.appa;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
//写一个数据库继承自SQLiteOpenHelper
public class MyHelper extends SQLiteOpenHelper {
public MyHelper(Context context) {
//创建数据库
//参数一 上下文 参数二 库名 参数三 工厂 填null就行 参数四 版本 要大于0
super(context, "1705B", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
//创建表 括号内的是表内要写的参数 先起名在写类型
db.execSQL("create table student(image varchar(100),name varchar(20),message varchar(200))");
//后面也可以直接填一些数据
//比如 db.execSQL("insert into student values(null,'吴彦祖',null)")
}
//这个方法是修改数据时调用的 我们暂且不管
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
数据库写完后写内容提供者
//继承自ContentProvier
public class MyProvider extends ContentProvider {
MyHelper myHelper;
SQLiteDatabase db;
@Override
public boolean onCreate() {
//实例化我们刚才写的数据库
myHelper = new MyHelper(getContext());
//调用数据库中的getWritableDatabase方法
db = myHelper.getWritableDatabase();
//判断有没有这个数据库
if(myHelper != null){
return true;
}else{
return false;
}
}
//数据查询时
@Override
public Cursor query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder) {
//参数一:表名 参数二:返回列 参数三:条件 参数四:条件的内容 参数五:排序方式 在参数四后面还有两个可有可无的参数 分组和分组条件可以填null
Cursor query = db.query("student", projection, selection, selectionArgs, null, null, sortOrder);
//最后返回查询结果
return query;
}
//获取变量的类型
@Override
public String getType(Uri uri) {
return null;
}
//添加数据
@Override
public Uri insert(Uri uri, ContentValues values) {
//参数一:表名 参数二:填null 参数三:要添加的数据 写在一个values对象里
long insert = db.insert("student", null, values);
if(insert>0){
return uri;
}else{
return null;
}
}
//删除数据
@Override
public int delete(Uri uri,String selection,String[] selectionArgs) {
//参数一:表名 参数二:条件 参数三:条件内容
int delete = db.delete("student", selection, selectionArgs);
return delete;
}
//修改数据
@Override
public int update(Uri uri,ContentValues values,String selection,String[] selectionArgs) {
//参数一:表名 参数二:条件 参数三:修改的内容
int update = db.update("student", values, selection, selectionArgs);
return update;
}
}