`
x1ong
  • 浏览: 15323 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

提供共享数据库

阅读更多
1、创建一个Sqlite数据库助手类、继承SQLiteOpenHelper
2、创建一个实体类、用包装一些常量
3、创建数据库共享的类、继承ContentProvider
4、注册共享的类
<provider
       android:name="com.share.PersonContentProvider"
       android:authorities="com.android.PersonContentProvider" > </provider>
       //表示:唯一标识




//Sqlite助手类
package com.share;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBHelper extends SQLiteOpenHelper {

public final static String DB_NAME="StuInfo.db";
public final static int DB_VALUES=1;
public final static String TAB_NAME="user";
public DBHelper(Context context) {
//创建数据库
super(context, DB_NAME, null, DB_VALUES);

}

public void onCreate(SQLiteDatabase db) {
//创建表
db.execSQL("create table "+TAB_NAME+"("+MyUser.UserColumns._ID+" integer primary key autoincrement,"+
MyUser.UserColumns.USER_NAME+" text,"+MyUser.UserColumns.USER_AGE+" integer)");

}

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}

}



//实体类
package com.share;

import android.net.Uri;
import android.provider.BaseColumns;

public class MyUser {
//提供一个Uri地址
public final static String authority="com.android.PersonContentProvider";
public final static class UserColumns implements BaseColumns{
public final static Uri CONTENT_URI=Uri.parse("content://"+authority);
public final static String USER_NAME="username";
public final static String USER_AGE="userage";
}
}









//数据库共享类
package com.share;

import android.content.ContentProvider;
import android.content.ContentUris;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import android.net.Uri;

public class PersonContentProvider extends ContentProvider {

private DBHelper helper;
public SQLiteDatabase db;
public int delete(Uri uri, String selection, String[] selectionArgs) {

return 0;
}


public String getType(Uri uri) {

return null;
}


public Uri insert(Uri uri, ContentValues values) {
db=helper.getWritableDatabase();
//返回当前插入数据的行号
long  rowid=db.insert(DBHelper.TAB_NAME, null, values);
if(rowid>0){
Uri  rowUri=ContentUris.withAppendedId(uri, rowid);
return rowUri;
}
return null;
}


public boolean onCreate() {
//初始化数据库
helper = new DBHelper(getContext());
return false;
}


public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
db=helper.getReadableDatabase();
SQLiteQueryBuilder  sqb=new SQLiteQueryBuilder();
//插入的数据的表
sqb.setTables(DBHelper.TAB_NAME);
Cursor c=sqb.query(db, projection, null, null, null, null, null);
c.setNotificationUri(getContext().getContentResolver(), uri);
return c;
}


public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {

return 0;
}

}










//MniaActivity

package com.share;

import android.os.Bundle;
import android.widget.Toast;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;

public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
insertData();
display();
}

public void insertData() {
ContentResolver cr = getContentResolver();
ContentValues  cv=new ContentValues();
cv.put(MyUser.UserColumns.USER_NAME, "张学友");
cv.put(MyUser.UserColumns.USER_AGE, 55);
cr.insert(MyUser.UserColumns.CONTENT_URI, cv);
}

@SuppressLint("ShowToast")
public Cursor  display(){
ContentResolver cr = getContentResolver();
Cursor c =cr.query(MyUser.UserColumns.CONTENT_URI,
new String[]{MyUser.UserColumns.USER_NAME,MyUser.UserColumns.USER_AGE}, null, null, null);
while(c.moveToNext()){
String name=c.getString(0);
int age=c.getInt(1);
Toast.makeText(MainActivity.this, name+"  "+age, 1000).show();
}
return c;

}
}










分享到:
评论

相关推荐

    数据库翻译作业——大型共享数据库数据的关系模型

    在IT行业中,数据库是存储和管理信息的核心工具,特别是在大型共享环境下的数据处理。...通过深入学习和实践,我们可以更好地利用这种强大的数据组织方式,为大型共享数据库提供高效、可靠的服务。

    微服务:如何拆分共享数据库?

    简而言之,您需要将您的应用程序/服务从使用单一的共享数据库中拆分出来。您应该以这样一种方式设计您的微服务体系结构,即每个单独的微服务都有自己的独立数据库和自己的领域数据。这将允许您独立部署和扩展微服务...

    共享内存数据库资料 Linux 数据库 共享内存1

    ### 共享内存数据库知识点详解 #### 一、项目背景及意义 - **背景概述**:随着2008年国家通信行业的战略调整以及2009年3G牌照的发放,中国电信业迎来了3G时代。3G技术的普及不仅提高了网络传输速度,还为用户提供...

    BPL和DLL中Form共享数据库连接和模块调用的例子.rar

    - 本案例提供了一个实际操作的例子,展示了如何在Delphi的BPL和DLL中高效地管理和共享数据库连接,以及如何在模块间进行有效调用。这对于理解和优化大型项目或分布式系统的架构是非常有价值的。通过深入研究和实践...

    数据库经典SQL共享

    "数据库经典SQL共享"的主题涵盖了从基础到高级的各种SQL概念,尤其针对Oracle数据库系统进行了概述。Oracle是全球领先的数据库解决方案之一,广泛应用于大型企业级应用。 首先,我们要理解SQL的基本元素。SQL主要...

    局域网如何设置SQL Server2008数据库共享.pdf

    局域网如何设置SQL Server2008数据库共享.pdf

    共享内存数据库资料 Linux 数据库 共享内存

    共享内存数据库 Linux 数据库 共享内存 共享内存数据库 Linux 数据库 共享内存

    共享内存数据库\Linux下基于共享内存访问的数据库设计与实现

    总之,基于Linux环境下共享内存访问的数据库设计方案提供了一种新的思路,对于那些需要高性能、低延迟的数据访问需求来说是一个很好的解决方案。未来的研究方向可以进一步探讨如何将该技术应用于更大规模的数据集中...

    政务信息共享数据库建设方案终版.pdf

    "政务信息共享数据库建设方案终版.pdf" 本文档是有关政务信息共享数据库建设方案的详细描述,旨在解决政府机构之间的信息共享和交换问题。政务信息共享数据库是结合政府各类决策支持系统、相关应用系统的接入和政务...

    Access数据库共享

    **2.1.1 共享数据库文件夹** 1. **第一步:共享数据库文件夹** - 打开包含Access数据库文件的文件夹。 - 右键点击该文件夹,选择“共享和安全”选项。 - 在弹出的窗口中勾选“在网络上共享这个文件夹”。 - ...

    Oracle数据库共享服务

    帮助你设置数据库实现共享,从而对数据库的资源得到合理的利用和优化

    使用package(包功能)实现DLL与主程序的数据库连接共享(Delphi版).doc

    在Delphi编程环境中,开发大型主从架构系统时,如何有效地管理和共享数据库连接是一个关键问题。使用`Package`功能可以解决这一难题,提高程序的效率并避免资源浪费。`Package`是Delphi的一种机制,类似于.NET框架中...

    政务信息共享数据库建设方案规范.doc

    政务信息共享数据库建设方案规范 政务信息共享数据库是指结合政府各类决策支持系统、相关应用系统的接入和政务信息资源共享交换的需求而构建的共享数据库。该数据库是政务信息交换共享平台的重要组成部分,用于实现...

    连接网络共享的Access数据库.rar

    当我们需要在多台计算机之间共享数据时,将Access数据库放在网络共享位置可以实现协作。下面我们将深入探讨如何连接网络共享的Access数据库以及涉及的相关知识点。 首先,要理解“网络共享”的概念。网络共享是指在...

    VB控件--局域网ACCESS数据库共享

    在VB开发局域网数据库系统的时候,如果遇到需要共享数据库的情况时,可以使用该控件。非常好用。不过只针对ACCESS。

    基于共享数据库的数据共享技术.pdf

    基于共享数据库的数据共享技术.pdf

    安卓数据库共享

    本主题将深入探讨“安卓数据库共享”,包括如何通过`ContentProvider`实现数据的提供和接收。 首先,我们来看“SQLite.rar”这个压缩包,它涉及到的是Android中的本地数据库管理。SQLite是一个轻量级的关系型数据库...

Global site tag (gtag.js) - Google Analytics