利用ContentProvider的添加数据
//创建数据库类
package com.baiwei.sqlite;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
public MySQLiteOpenHelper(Context context) {
super(context, "1408f.db", null, 1);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table person(_id integer primary key autoincrement,name varchar(10),age integer)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
//ContentProvider的添加与查询的方法
package com.bawei.contentprovider;
import com.baiwei.sqlite.MySQLiteOpenHelper;
import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
public class MyContentProvider extends ContentProvider {
private MySQLiteOpenHelper helper;
//private UriMatcher matcher;
private static final int YES=1;
static UriMatcher matcher=new UriMatcher(UriMatcher.NO_MATCH);
private SQLiteDatabase db;
private Cursor cursor;
static{
matcher.addURI("aaa", "lianjie", YES);
}
@Override
public boolean onCreate() {
helper = new MySQLiteOpenHelper(getContext());
return true;
}
//查询数据
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
if(matcher.match(uri)==YES){
db=helper.getWritableDatabase();
cursor = db.query("person", projection, selection, selectionArgs, null, null, sortOrder);
}
return cursor;
}
@Override
public String getType(Uri uri) {
// TODO Auto-generated method stub
return null;
}
//添加数据
@Override
public Uri insert(Uri uri, ContentValues values) {
if(matcher.match(uri)==YES){
db = helper.getWritableDatabase();
db.insert("person", null, values);
System.out.println("添加成功");
}
db.close();
return null;
}
//删除数据
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
if(matcher.match(uri)==YES){
db=helper.getWritableDatabase();
db.delete("person", selection, selectionArgs);
System.out.println("删除成功");
}
db.close();
return 0;
}
//修改数据
@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
if(matcher.match(uri)==YES){
db=helper.getWritableDatabase();
db.update("person", values, selection, selectionArgs);
}
db.close();
return 0;
}
}
//Activity中的操作
package com.bawei.contentprovider;
import com.baiwei.sqlite.MySQLiteOpenHelper;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MySQLiteOpenHelper helper=new MySQLiteOpenHelper(this);
helper.getWritableDatabase();
}
}
更多相关文章
- 一句话锁定MySQL数据占用元凶
- Android中的数据存储方式
- ViewPager初步用法(二)
- RecyclerView添加行间距
- android路径获取
- 异常ExceptionInInitializerError解决方案
- Android(安卓)程序奔溃常见问题汇总
- 解析json格式数据
- android EditText增加删除事件