android平台下数据库的一些概念
Sqlite是android平台的一款轻量级的、嵌入式的、关系型数据库产品,以下是一些主要概念。
1.Sqlite通过文件保存数据库,创建的数据库文件默认存在在/data/data//databases/的文件
夹下,一个文件就是一个数据库。
2.一个数据库包含多个表格,一个表格包含不同的字段,字段类型等等,这与SQL数据库相似。
3.Sqlite记录没有顺序的概念,不存在第一第二类的概念,通过查询获取满足条件的记录。
android平台下操作数据库的的相关类
(1.)SQLiteOpenHelper 抽象类,用于创建和管理数据库以及版本,需要创建一个子类继承,该类封装
了对数据库操作的基本方法,使用方便。
(2.)SQLiteDatabase 数据库访问了,主要是对数据库的增删改查等常用操作,功能比
SQLiteOpenHelper丰富,比如事务管理,分页等等。
(3.)Cursor游标类,主要用来返回返回查询记录结果
SQLiteOpenHelper 类使用方法比较少,网上介绍也比较多,本程序主要采用SQLiteDatabase类操作数
据库,介绍android 平台下Sqlite的多种使用方法。主要功能如图-1界面所示。
图-1 Sqlite数据库界面的操作及其功能
图-2 创建的数据库截图
源码下载:Sqlite.zip
1.对数据库的操作
(1.)创建一个数据库
//在文件夹/data/data//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 =newContentValues();
values.put("username", user.getUsername());
values.put("info", user.getInfo());
mDb.insert(table, null, values);
(2.)删除一条记录
String whereClause ="id=?";
String[] whereArgs = newString[] {String.valueOf(id)};
mDb.delete(table, whereClause, whereArgs);
(3.)修改一条记录
ContentValues values =newContentValues();
values.put("username", username);
values.put("info", info);
String whereClause = "id=?";
String[] whereArgs = newString[] { String.valueOf(id) };
mDb.update(table, values, whereClause, whereArgs);
(4.)查询一条数据
String[] columns =newString[] {"id","username","info"};
String selection = "id=?";
String[] selectionArgs = { String.valueOf(id) };
String groupBy = null;
String having = null;
String orderBy = null;
mDb.query(table, columns, selection,selectionArgs, groupBy, having, orderBy);
(5.)查询所有记录
mDb.rawQuery("select * from "+table,null);
SqliteActivity源码类如下(注意:在点击对数据记录的增删改查时要先create table ,否则会因为无法找到mytable表而报错)
SqliteActivity.java
packagecom.sqlite.main;
importjava.io.File;
importandroid.app.Activity;
importandroid.content.ContentValues;
importandroid.database.Cursor;
importandroid.database.SQLException;
import