Android数据存储与共享
来源:互联网 发布:数据库的事务是什么 编辑:程序博客网 时间:2024/06/05 11:47
1、简单数据存储---Preferences
SharedPreferences sp = this.getSharedPreferences("cundang", Context.MODE_PRIVATE);// 路径名 /data/data/应用程序包名/shared_prefs/cundang.xml
String lastLoginTime = sp.getString("lastLoginTime", null);
if(null == lastLoginTime){
lastLoginTime = "感谢使用本软件";
}else{
lastLoginTime = "欢迎回来!上次进入时间为:"+lastLoginTime;
}
SharedPreferences.Editor editor = sp.edit();
editor.putString("lastLoginTime", new Date().toLocaleString());
editor.commit();
MyDialog.newInstance("欢迎", lastLoginTime).show(getFragmentManager(), "");
2、Android自带开源数据库---SQLite
//创建数据库 openDatabase(String path,
SQLiteDatabase.CursorFactory factory,
int flags)
SQLiteDatabase sld=SQLiteDatabase.openDatabase("/data/data/com.example.practice/mydb",
null,// 游标工厂,默认 null
SQLiteDatabase.OPEN_READWRITE | SQLiteDatabase.CREATE_IF_NECESSARY // 模式为读写,不存在则创建数据库)
String sql = "创建表";
sld.execSQL(sql);
//关闭数据库 close()
sld.close();
//插入数据 insert(String table,String nullColumnHack, ContentValues values)
String sql = "插入数据";
sld.execSQL(sql);
//更新数据 update(String table, ContentValues values, String whereClause, String[] whereArgs)
//删除数据 delete(String table, String whereClause, String [] whereArgs)
//查询数据 query(String table, String[] columns, String selection, String[] selectionArgs,String groupBy,String having,String orderBy)
//执行SQL(除了select) execSQL(String sql) 或 execSQL(String sql, Object[] bindArgs)
//执行查询SQL(select) rawQuery(String sql, String[] selectionArgs)
String sql = "select ...";
Cursor cur = sld.rawQuery(sql, new String[] {"","",...});
while(cur.moveToNext(){
String diyilie = cur.getString(0);// 获取第一列数据
int dierlie = cur.getInt(1);// 获取第二列数据
}
cur.close();
3、使用ContentProvider共享数据
3.1共享数据
public class MyContentProvider extends ContentProvider{
private static final UriMatcher um;
static {
um = new UriMatcher(UriMatcher.NO_MATCH);
um.addURI("lwr.practice.database.test", "test1", 1);
}
SQLiteDatabase sld;
@SuppressLint("SdCardPath") @Override
public boolean onCreate() {
// TODO Auto-generated method stub
sld = SQLiteDatabase.openDatabase(
"/data/data/lwr.playenglish.database.test/test", null,// 游标工厂,默认 null
SQLiteDatabase.OPEN_READWRITE
| SQLiteDatabase.CREATE_IF_NECESSARY // 模式为读写,不存在则创建数据库
);
return false;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
// TODO Auto-generated method stub
switch (um.match(uri)) {
case 1:
Cursor cur = sld.query("test", projection, selection,
selectionArgs, null, null, sortOrder);
return cur;
}
return null;
}
}
3.2获取共享数据
public class example1 extends Activity{
... onCreate(...){
ContentResolver cr = this.getContentResolver();
Cursor cur=cr.query(Uri.parse("content://lwr.practice.database.test/test1"),
new String[] {"id","name",...""},
"id=?",
new String[] {"12"},
"sage ASC"
);
while(cur.moveToNext()){
int id = cur.getInt(0);
String name = cur.getString(1);
}
cur.close();
}
}
SharedPreferences sp = this.getSharedPreferences("cundang", Context.MODE_PRIVATE);// 路径名 /data/data/应用程序包名/shared_prefs/cundang.xml
String lastLoginTime = sp.getString("lastLoginTime", null);
if(null == lastLoginTime){
lastLoginTime = "感谢使用本软件";
}else{
lastLoginTime = "欢迎回来!上次进入时间为:"+lastLoginTime;
}
SharedPreferences.Editor editor = sp.edit();
editor.putString("lastLoginTime", new Date().toLocaleString());
editor.commit();
MyDialog.newInstance("欢迎", lastLoginTime).show(getFragmentManager(), "");
2、Android自带开源数据库---SQLite
//创建数据库 openDatabase(String path,
SQLiteDatabase.CursorFactory factory,
int flags)
SQLiteDatabase sld=SQLiteDatabase.openDatabase("/data/data/com.example.practice/mydb",
null,// 游标工厂,默认 null
SQLiteDatabase.OPEN_READWRITE | SQLiteDatabase.CREATE_IF_NECESSARY // 模式为读写,不存在则创建数据库)
String sql = "创建表";
sld.execSQL(sql);
//关闭数据库 close()
sld.close();
//插入数据 insert(String table,String nullColumnHack, ContentValues values)
String sql = "插入数据";
sld.execSQL(sql);
//更新数据 update(String table, ContentValues values, String whereClause, String[] whereArgs)
//删除数据 delete(String table, String whereClause, String [] whereArgs)
//查询数据 query(String table, String[] columns, String selection, String[] selectionArgs,String groupBy,String having,String orderBy)
//执行SQL(除了select) execSQL(String sql) 或 execSQL(String sql, Object[] bindArgs)
//执行查询SQL(select) rawQuery(String sql, String[] selectionArgs)
String sql = "select ...";
Cursor cur = sld.rawQuery(sql, new String[] {"","",...});
while(cur.moveToNext(){
String diyilie = cur.getString(0);// 获取第一列数据
int dierlie = cur.getInt(1);// 获取第二列数据
}
cur.close();
3、使用ContentProvider共享数据
3.1共享数据
public class MyContentProvider extends ContentProvider{
private static final UriMatcher um;
static {
um = new UriMatcher(UriMatcher.NO_MATCH);
um.addURI("lwr.practice.database.test", "test1", 1);
}
SQLiteDatabase sld;
@SuppressLint("SdCardPath") @Override
public boolean onCreate() {
// TODO Auto-generated method stub
sld = SQLiteDatabase.openDatabase(
"/data/data/lwr.playenglish.database.test/test", null,// 游标工厂,默认 null
SQLiteDatabase.OPEN_READWRITE
| SQLiteDatabase.CREATE_IF_NECESSARY // 模式为读写,不存在则创建数据库
);
return false;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
// TODO Auto-generated method stub
switch (um.match(uri)) {
case 1:
Cursor cur = sld.query("test", projection, selection,
selectionArgs, null, null, sortOrder);
return cur;
}
return null;
}
}
3.2获取共享数据
public class example1 extends Activity{
... onCreate(...){
ContentResolver cr = this.getContentResolver();
Cursor cur=cr.query(Uri.parse("content://lwr.practice.database.test/test1"),
new String[] {"id","name",...""},
"id=?",
new String[] {"12"},
"sage ASC"
);
while(cur.moveToNext()){
int id = cur.getInt(0);
String name = cur.getString(1);
}
cur.close();
}
}
阅读全文
0 0
- Android数据存储与共享
- Android 数据存储与共享 总结
- Android数据存储--SharedPreferences--共享数据存储
- Android 数据存储(二) 共享参数存储
- Android 数据存储(一) 共享参数存储
- android数据存储:ContentProvider数据共享
- Android数据存储—ContentProvider共享数据
- android数据存储--共享参数(sharedPreferences)
- Android 数据存储之 共享参数 SharedPreferences
- Android数据存储SharedPreferences共享参数
- android数据存储与访问
- Android数据存储与访问
- Android数据存储与IO
- Android数据存储与IO
- Android数据存储与访问
- Android数据存储与访问
- Android数据存储与IO
- Android 网络与数据存储
- LightOJ 1422 (区间DP)
- 【COCI】 2271 邮递员 暴力(不是树形DP)题解 c++
- 机器学习(十一)- Multiclass Classification
- Prometheus采集用的exporter
- 单链表的实现
- Android数据存储与共享
- 【设计模式】常见设计模式
- c/c++整理--私有继承
- (一)MATSim安装教程
- PHP安全的URL字符串base64编码和解码
- 环境变量 RANDOM
- MySQL 索引及慢查询优化
- 【OpenCV入门指南】第十一篇 鼠标绘图
- django template 基础(模板对象(Template),上下文对象(Context))