android数据存储篇——SqliteDatabase
来源:互联网 发布:淘宝网拼多多 编辑:程序博客网 时间:2024/05/21 11:08
在安卓系统内部存在着sqlitedatabase数据库。可以将app的数据,比如账号信息。消息记录等,以数据库的形式保存在手机内存上。而保存的目录为系统根目录/data/data/包名/数据库名。
下面开始讲解其中的主要类怎么使用。
SQLiteOpenHelper:
SQLiteOpenHelper是SQLitedatabase的辅助类。用来初始化数据库连接。
SQLiteDatabase:
用来管理sqlite的一个类,主要包含了数据库的增删改查的方法。
增:insert(String table,String nullColumHack,ContentValues values);
table 是表名
nullColumHack是一个字段名,为了防止values为空时插入空行,这是底层数据库不允许的,当values为空时,会插入为null的一条记录.
ContentValues 是一个类似map的映射类。以键值对的形式。
ContentValues values=new ContentValues();values.put("id", 2);//插入一条id为2的记录database.insert("mesager","id",values);
删:delete(String table,String whereClause,String[] whereArgs);
table表名
whereClause带占位符的where语句。
whereArgs被占位符所代替的数组。
//删除mesager表字段id为1,2,5的记录database.delete("mesager","where id=?",new String[]{1,2,5});
改:update(String table,ContentValue values,String whereClause,String[] whereArgs);
table 表名
values 键值对对象
whereClause带占位符的where语句。
whereArgs被占位符所代替的数组。
ContentValues values=new ContentValues();values.put("id", 2);//将mesager表id为5的记录id修改为2database.update("mesager",values,"where id=?",new String[]{5})
查:query(String mesager,String[] columns,String selection,String selectionArgs,String groupBy,String having,String orderBy);
mesager表名
columns查询字段的数组,如果为null则查询所有字段
sekection带占位符的where语句。
selectionArgs被占位符所代替的数组。
groupBy 根据那个字段分组
having分组后的where语句
orderBy根据那个字段排序,默认升序。id desc根据id降序查询
database.query("mesager", null, null, null, "sender", null, "id desc", "1");
实例:
MesagerDatabaseOpenHelp类:
package com.saver.database;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class MesagerDatabaseOpenHelp extends SQLiteOpenHelper { public MesagerDatabaseOpenHelp(Context context, String name, int version) { super(context, name, null, version); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase arg0) { // TODO Auto-generated method stub **创建数据库** String sql = "create table mesager(" + "id integer primary key autoincrement," + "sender varchar," + "body varchar," + "cdate varchar," + "isread varchar)"; arg0.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { // TODO Auto-generated method stub }}
MesagerDatabase类:
package com.saver.database;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;public class MesagerDatabase { private MesagerDatabaseOpenHelp help; private SQLiteDatabase sqLiteDatabase; public MesagerDatabase(Context context, String name) { // TODO Auto-generated constructor stub help = new MesagerDatabaseOpenHelp(context, name, 1); ***创建数据库*** sqLiteDatabase = help.getReadableDatabase(); } ***增*** public void addMesager(String from, String body) { String sql = "insert into mesager(sender,body,cdate,isread) values(?,?,?,?)"; String date = String.valueOf(System.currentTimeMillis()); sqLiteDatabase.execSQL(sql, new String[] { from, body, date, "0" }); } ***查*** public Cursor getAllLastMesager() { Cursor query = sqLiteDatabase.query("mesager", null, null, null, "sender", null, "id desc", "1"); return query; } ***改*** public void setMesagerRead(String arg) { ContentValues contentValues = new ContentValues(); contentValues.put("isread", "1"); sqLiteDatabase.update("mesager", contentValues, "sender=?", new String[] { arg }); } ***删*** public void deleteMesager(String arg) { sqLiteDatabase.delete("mesager", " sender=?", new String[] { arg }); } ***查*** public Cursor selectMesager(String arg) { Cursor query = sqLiteDatabase.query("mesager", null, "sender=?", new String[] { arg }, null, null, "id"); return query; }//关闭数据连接 public void close() { sqLiteDatabase.close(); help.close(); }}
- android数据存储篇——SqliteDatabase
- Android-SQLiteDatabase数据存储
- Android本地数据存储之SQLite关系型数据库 ——SQLiteDatabase
- Android本地数据存储之SQLite关系型数据库 ——SQLiteDatabase
- 数据存储之SQLiteDatabase
- Android SQLiteDatabase 数据库存储
- Android 数据存储 利用SQLiteDatabase实现简单的学生管理
- Android数据存储方式之SQLite(1、SQLiteDatabase)
- Android 数据存储 利用SQLiteDatabase实现简单的学生管理
- Android 数据存储 利用SQLiteDatabase实现简单的学生管理
- 用SQLiteDatabase类存储数据
- Android 数据操作之SQLiteDatabase
- Android 数据操作之SQLiteDatabase
- Android数据保存之SQLiteDatabase
- 使用SQLiteDatabase操作SQLite数据库存储数据
- android 存储方式(三)SQLiteDatabase
- android SQliteDatabase 数据的更新问题
- Android中SQLiteDatabase中插入中文数据
- Collection和Collections的区别
- 【b301】神经网络
- nginx反向代理配置及优化
- xshell的快捷键
- 模块化
- android数据存储篇——SqliteDatabase
- MongoDump与MongoRestore若干小坑
- 基于spark之上的即席分析-spark内存泄漏及源码调优
- [LeetCode]295. Find Median from Data Stream
- LeetCode : Convert a Number to Hexadecimal
- 3.6学习内容
- Linux入门---服务器选择Linux还是Windows
- 图Graph
- ECGLayoutConstraint---多屏幕适配,自动计算各种屏幕下的布局以及字体大小