数据库模版

本文详细介绍了一个基于SQLite的数据库辅助类MOpenHelper的实现方法,包括数据库的创建、表结构的初始化及数据插入等基本操作,并展示了如何通过MContentProvider类进行数据库的查询、插入、删除和更新操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建:

public class MOpenHelper extends SQLiteOpenHelper {

public MOpenHelper(Context context) {
/**
* name 数据库的名字 
* factory    工厂    默认的游标工厂 目的是创建 cursor 
* version 数据库的版本  从1开始 

*/
super(context, "user", null, 1);
}
/**
* 当数据库第一次创建的时候调用 

* 特别适合做 表结构的初始化 
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table if not exists user (_id integer primary key autoincrement,name varchar(20),money varchar(20))");
//初始化2条数据
db.execSQL("insert into user ('name','money') values ('张三','2000')");
db.execSQL("insert into user ('name','money') values ('李四','5000')");

}
/**
* 当数据库版本需要升级的时候调用

* 适合做 表结构更新的操作 

*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
System.out.println("onUpgrade");
// db.execSQL("alter table info add phone varchar(20)");
}

}


使用:

public class MContentProvider extends ContentProvider{
private MOpenHelper mOpenHelper;
@Override
public boolean onCreate() {
mOpenHelper = new MOpenHelper(getContext());
//true:代表Provider创建成功,false:处理复杂逻辑的时候, 如果出错,我们就返回false;
return true;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
Log.e("MContentProvider", "调用了查询数据的方法");
SQLiteDatabase readableDatabase = mOpenHelper.getReadableDatabase();
Cursor cursor = readableDatabase.query("user", projection, selection, selectionArgs, null, null, sortOrder);
return cursor;
}
//内容提供者返回的数据类型,默认为null即可;只有返回特殊类型才会重写这个方法;默认为null即可;
@Override
public String getType(Uri uri) {
// TODO Auto-generated method stub
return null;
}
@Override
public Uri insert(Uri uri, ContentValues values) {
/**
* getWritableDatabase:如果存储数据的sd卡已满,调用getWritableDatabase就会报错;
* getReadableDatabase如果存储数据的sd卡已满,调用getReadableDatabase不会报错, 会以只读的方式来操作;;
*/
SQLiteDatabase readableDatabase = mOpenHelper.getReadableDatabase();
long insert = readableDatabase.insert("user", null, values);
Log.e("MContentProvider", "调用了增加数据的方法");
return null;
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
SQLiteDatabase readableDatabase = mOpenHelper.getReadableDatabase();
int deleteTemp = readableDatabase.delete("user", selection, selectionArgs);
return deleteTemp;
}
@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
SQLiteDatabase readableDatabase = mOpenHelper.getReadableDatabase();
int updateTemp = readableDatabase.update("user", values, selection, selectionArgs);
return updateTemp;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值