Android学习笔记1-1--数据2--SQL
来源:互联网 发布:易语言魔域登陆器源码 编辑:程序博客网 时间:2024/06/17 00:31
SharedPreferences
SharedPreferences是一种轻型的数据存储方式。其本质是基于XML文件形式存储key-value键值对数据。通常用来存储一些简单的配置信息,而且是标准的Boolean、Int、Float、Long、String等类型。其存储位置在/data/data/<包名>/shared_prefs目录下。
实现SharedPreferences存储的步骤如下:
1.获取SharedPreferences对象。
2.利用对象的edit()方法获取Editor对象。
3.通过Editor对象存储key-value键值对数据。
4.通过commit()/apply()方法提交数据。
有三种获取系统中保存的持久化数据的方式:
1.this.getPreferences (int mode)
通过Activity对象获取,获取的是本Activity私有的Preference,保存在系统中的xml形式的文件的名称为这个Activity的名字,因此一个Activity只能有一个,属于这个Activity。
2.this.getSharedPreferences (String name, int mode)
因为Activity继承了ContextWrapper,因此也是通过Activity对象获取,但是属于整个应用程序,可以有多个,以第一参数的name为文件名保存在系统中。
3.PreferenceManager.getDefaultSharedPreferences(this);
PreferenceManager的静态函数,保存PreferenceActivity中的设置,属于整个应用程序,但是只有一个,Android会根据包名和PreferenceActivity的布局文件来起一个名字保存。
mode值为Context.MODE_PRIVATE/WORLD_WRITEABLE/WORLD_READABLE。
SharedPreferences对象与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等诸多操作,相对而言更加方便简洁。但是SharedPreferences也有其自身缺陷,如其职能存储boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方式。
SQLite
这里有SQLite简单学习地址,这里有SQLite详细学习地址以及SQLite剖析。
// sql基本语法为:// 增加insert into <表名> (key1,key2...) values (v1,v2...) // 删除delete <表名> where ...// 修改update <表名> set key1=v1,key2=v2... where ...// 查询select * form <表名> where ...
SQLiteOpenHelper
SQLiteOpenHelper是一个辅助类来管理数据库的创建和版本。可以通过继承这个类,实现它的一些方法来对数据库进行一些操作。所有继承了这个类的类都必须实现下面这样的一个构造方法:
DatabaseHelper(Context context, String name, CursorFactory factory, int version)// 第一个参数:Context类型,上下文对象// 第二个参数:String类型,数据库的名称// 第三个参数:CursorFactory类型// 第四个参数:int类型,数据库版本
下面是这个类的几个方法:
//创建或打开一个数据库。可以通过这两个方法返回的SQLiteDatabase对象对数据库进行一系列的操作getReadableDatabase()getWritableDatabase()// 在配置数据连接时会调用这个方法,确保预写日志或外键支持等功能可用onConfigure(SQLiteDatabase db)// 创建数据库onCreate(SQLiteDatabase db)// 升降级数据库onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion)// 打开数据库onOpen(SQLiteDatabase db)// 关闭所有打开的数据库对象close()
SQLiteDatabase
SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法。
// 打开或创建数据库openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory)// 关闭数据库close()// 获取(设置)数据库的版本getVersion()setVersion(int version)// 插入一条记录insert(String table,String nullColumnHack,ContentValues values)// 删除一条记录delete(String table,String whereClause,String[] whereArgs)// 修改记录update(String table,ContentValues values,String whereClause,String[] whereArgs)// 查询一条记录query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy)// 执行一条SQL语句execSQL(String sql, Object[] bindArgs)
Cursor
Cursor是每行的集合。你必须知道每一列的名称和每一列的数据类型。Cursor是一个随机的数据源,所有的数据都是通过下标取得。当我们使用 SQLiteDatabase.query系列方法时就会得到Cursor对象。
// SQLiteDatabase db = dbHelper.getWritableDatabase();// Cursor c = db.rawQuery("Select * from Book", null);c.close() // 关闭游标,释放资源c.getCount(); // 总数据项数 c.getPosition(); // 返回当前游标所指向的行数c.getColumnIndex(String columnName); // 返回某列名对应的列索引值,如果不存在返回-1c.getInt(int columnIndex); // 返回当前行指定列的值c.getDouble(int columnIndex); // 返回当前行指定列的值c.getString(int columnIndex); // 返回当前行指定列的值c.moveToPosition(int position); // 移动到指定行c.move(int offset); // 以当前位置为参考,移动到指定行c.moveToFirst(); // 移动到第一行c.moveToLast(); // 移动到最后一行c.moveToPrevious(); // 移动到前一行c.moveToNext(); // 移动到下一行c.isFirst(); // 是否指向第一条c.isLast(); // 是否指向最后一条 c.isBeforeFirst(); // 是否指向第一条之前c.isAfterLast(); // 是否指向最后一条之后c.isNull(int columnIndex); //指定列是否为空(列基数为0)c.isClosed(); // 游标是否已关闭
相关库
网上一般采用ORMLite,这里个人推荐一款国人开发的ORM框架LiteOrm。这里是他的官网,上面还有很多好东东奥,一般人我不告诉他^_^。自己也写了一个库,点这里进入,多多支持奥!
- Android学习笔记1-1--数据2--SQL
- sql学习笔记2--查询数据
- SQL学习笔记1
- SQL学习笔记1
- SQL学习笔记1
- SQL学习笔记1
- SQL学习笔记1
- SQL学习笔记--1
- sql学习笔记(1)
- Head First SQL:学习笔记1/2
- Android学习笔记1-1--数据1--File
- Android学习笔记1-1--数据3--Bundle
- Android学习笔记——保存数据到SQL数据库中(Saving Data in SQL Databases)
- sql语句-sql学习笔记1
- SQL Server2005 学习笔记1
- SQL SERVER 学习笔记(1)
- T-SQL学习笔记(1)
- 学习笔记T-SQL(1)
- Android学习笔记1-1--数据1--File
- 374. Guess Number Higher or Lower
- Android Studio打开新项目时gradle下载太慢的问题
- yii2中登录后跳转回登录前请求的页面
- RubyMine 2016及2017 Mac免激活版破解说明
- Android学习笔记1-1--数据2--SQL
- 【Cocos2dx-lua 3.11.1】运行错误link1158 无法运行"rc.exe"
- bootstrapvalidator校验验第三方插件
- Android菜单详解 使用上下文菜单ContextMenu
- < openCV > 最大稳定极值区域(MSER-Maximally Stable Extremal Regions)
- jenkins weblogic 自动部署
- Android学习笔记1-1--数据3--Bundle
- nodejs+mysql入门实例
- 安卓截屏分享功能实现