3.Sqlite记录没有顺序的概念,不存在第一第二类的概念,通过查询获取满足条件的记录。
?
android平台下操作数据库的的相关类
1、SQLiteOpenHelper 抽象类,用于创建和管理数据库以及版本,需要创建一个子类继承,该类封装了对数据库操作的基本方法,使用方便。
2、SQLiteDatabase 数据库访问类,主要是对数据库的增删改查等常用操作,功能比SQLiteOpenHelper丰富,比如事务管理,分页等等。
3、Cursor游标类,主要用来返回返回查询记录结果。
?
本程序主要采用SQLiteDatabase类操作数 据库,介绍android 平台下Sqlite的多种使用方法。主要功能如图。
图-1 Sqlite数据库界面的操作及其功能
图-2 创建的数据库截图
?
(1.)创建一个数据库
- //在文件夹/data/data/<package>/databases/创建一个students.db的数据库??
- //该类返回一个SQLiteDatabase,对那个数据库操作,就要打开该数据库??
- openOrCreateDatabase("students.db",SQLiteDatabase.CREATE_IF_NECESSARY,?null);??
- ???
(2.)删除一个数据库
- //在Context环境中,删除students.db,该方法返回一个boolean类型??
- deleteDatabase("students.db");??
- ???
(3.)获取应用程序所有数据库的名称
- //在Context环境中,获取该应用程序的所有数据库名称(即databases文件夹下的数据库文件)??
- //该方法返回一个字符串数组??
- databaseList()??
- ???
(4.)重命名一个数据库
- //将数据库data.db重命名为renamedata.db??
- File?f?=?getDatabasePath("data.db");??
- File?renameFile=getDatabasePath("renamedata.db");??
- f.renameTo(renameFile);??
- ???
2.对表的操作
(1.)创建一个表(sql语句中创建)
- mDb.execSQL("create?table?if?not?exists?"+table+??
- "?(id?integer?primary?key?autoincrement,?"??
- +?"username?text?not?null,?info?text?not?null);");??
- ???
(2.)删除一个表
- mDb.execSQL("drop?table?if?exists?"?+?table);??
- ???
(3.)修改表
Sqlite是不能修改一个表的字段,不能删除一个表的字段,但是可以重命名一个表的名称,可以添加一个字段及其属性
1.)重命名表
- mDb.execSQL("alter?table?"?+?oldTable?+?"?rename?to??"+?newTableName+";");??
- ???
2.)添加一列
- mDb.execSQL("alter?table??"?+?table?+?"?add?column?"?+?column?+??type?+?"?;");??
- ???
(4.)获取一个数据库的所有表的名称
- mDb.rawQuery("select?name?from?sqlite_master?where?type='table'?order?by?name",null);??
- ???
3.对数据库记录的操作
(1.)添加一条记录
- ContentValues?values?=?new?ContentValues();??
- values.put("username",?user.getUsername());??
- values.put("info",?user.getInfo());??