- 浏览: 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;
}
}
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;
}
}
发表评论
-
VideoView
2013-06-05 12:16 527package com.videoview; import ... -
SoundPool播放音频
2013-06-05 12:14 489package com.soundpool; import ... -
MediaPlayer播放音频
2013-06-05 12:04 446package com.mediaPlayer; impor ... -
spinner下拉控件
2013-05-15 14:24 655我们大家都应该知道,android给我们提供了一个spinne ... -
AutoCompleteTextView提示字
2013-05-15 14:24 694android 的 AutoCompleteTextView ... -
ScrollVie滚动条
2013-05-14 22:38 660<LinearLayout xmlns:android= ... -
纵向开关
2013-05-14 22:27 690//布局文件 <ToggleButton ... -
Activity之间的切换和数据传输
2013-05-14 21:38 710//第一个Activity import an ... -
时钟控件布局
2013-05-14 21:27 535<LinearLayout xmlns:android= ... -
单选按钮和复选框
2013-05-14 21:19 776import android.os.Bundle; impor ...
相关推荐
在IT行业中,数据库是存储和管理信息的核心工具,特别是在大型共享环境下的数据处理。...通过深入学习和实践,我们可以更好地利用这种强大的数据组织方式,为大型共享数据库提供高效、可靠的服务。
简而言之,您需要将您的应用程序/服务从使用单一的共享数据库中拆分出来。您应该以这样一种方式设计您的微服务体系结构,即每个单独的微服务都有自己的独立数据库和自己的领域数据。这将允许您独立部署和扩展微服务...
### 共享内存数据库知识点详解 #### 一、项目背景及意义 - **背景概述**:随着2008年国家通信行业的战略调整以及2009年3G牌照的发放,中国电信业迎来了3G时代。3G技术的普及不仅提高了网络传输速度,还为用户提供...
- 本案例提供了一个实际操作的例子,展示了如何在Delphi的BPL和DLL中高效地管理和共享数据库连接,以及如何在模块间进行有效调用。这对于理解和优化大型项目或分布式系统的架构是非常有价值的。通过深入研究和实践...
"数据库经典SQL共享"的主题涵盖了从基础到高级的各种SQL概念,尤其针对Oracle数据库系统进行了概述。Oracle是全球领先的数据库解决方案之一,广泛应用于大型企业级应用。 首先,我们要理解SQL的基本元素。SQL主要...
局域网如何设置SQL Server2008数据库共享.pdf
共享内存数据库 Linux 数据库 共享内存 共享内存数据库 Linux 数据库 共享内存
总之,基于Linux环境下共享内存访问的数据库设计方案提供了一种新的思路,对于那些需要高性能、低延迟的数据访问需求来说是一个很好的解决方案。未来的研究方向可以进一步探讨如何将该技术应用于更大规模的数据集中...
"政务信息共享数据库建设方案终版.pdf" 本文档是有关政务信息共享数据库建设方案的详细描述,旨在解决政府机构之间的信息共享和交换问题。政务信息共享数据库是结合政府各类决策支持系统、相关应用系统的接入和政务...
**2.1.1 共享数据库文件夹** 1. **第一步:共享数据库文件夹** - 打开包含Access数据库文件的文件夹。 - 右键点击该文件夹,选择“共享和安全”选项。 - 在弹出的窗口中勾选“在网络上共享这个文件夹”。 - ...
帮助你设置数据库实现共享,从而对数据库的资源得到合理的利用和优化
在Delphi编程环境中,开发大型主从架构系统时,如何有效地管理和共享数据库连接是一个关键问题。使用`Package`功能可以解决这一难题,提高程序的效率并避免资源浪费。`Package`是Delphi的一种机制,类似于.NET框架中...
政务信息共享数据库建设方案规范 政务信息共享数据库是指结合政府各类决策支持系统、相关应用系统的接入和政务信息资源共享交换的需求而构建的共享数据库。该数据库是政务信息交换共享平台的重要组成部分,用于实现...
当我们需要在多台计算机之间共享数据时,将Access数据库放在网络共享位置可以实现协作。下面我们将深入探讨如何连接网络共享的Access数据库以及涉及的相关知识点。 首先,要理解“网络共享”的概念。网络共享是指在...
在VB开发局域网数据库系统的时候,如果遇到需要共享数据库的情况时,可以使用该控件。非常好用。不过只针对ACCESS。
基于共享数据库的数据共享技术.pdf
本主题将深入探讨“安卓数据库共享”,包括如何通过`ContentProvider`实现数据的提供和接收。 首先,我们来看“SQLite.rar”这个压缩包,它涉及到的是Android中的本地数据库管理。SQLite是一个轻量级的关系型数据库...