snifer

【原创】Android数据库编程入门

0
阅读(2669)

Android应用当中非常重要的一个环节就是数据库的编程,这就不能不提Android 带的内置SQLite 数据库,这个数据库对于创建它们的包套件是私有的,SQLite 是一个轻量级的软件库,体积大小只用几千字节,下面我就用一个实例来演示一下如何创建该数据库。

SQLiteDatabase mydataBase=SQLiteDatabase.create(new CursorFactory()

{
//创建一个数据库
//工厂类,一个可选工厂类,当查询时调用来实例化一个光标
@Override
public Cursor newCursor(SQLiteDatabase db,
SQLiteCursorDriver masterQuery, String editTable,
SQLiteQuery query) {
// TODO Auto-generated method stub
return null;
}
});
SQLiteDatabase myDataBase=this.openOrCreateDatabase("myDataBase.db",
MODE_PRIVATE, new CursorFactory(){
//创建新的数据库,名称myDatabase,模式MODE_PRIVATE,鼠标工厂
//工厂类,一个可选工厂类,当查询时调用来实例化一个光标
@Override
public Cursor newCursor(SQLiteDatabase db,
SQLiteCursorDriver masterQuery, String editTable,
SQLiteQuery query) {
// TODO Auto-generated method stub
return null;
}
});

.. Context.deleteDatabase(String name)删除指定名称的数据库
.. 假如数据库成功删除则返回true,失败则为false(例如数据库不存在)

//删除指定名称的数据库
this.deleteDatabase("myDatabase.db");
//
打开数据库

Context.openDatabase(String file,CursorFactory factory) 打开一个存在的数据库并返回一个
SQLiteDatabase 对象
.. 如果数据库不存在则抛出FileNotFoundException 异常
//创建一个名为:myDataBase的数据库,后缀为.db
SQLiteDatabase my_DataBase=this.openOrCreateDatabase("myDateBase.db",
MODE_PRIVATE, null);
my_DataBase.close();//不要忘记关闭数据库
非查询SQL指令

SQLiteDatabase.execSQL(String sql)可以用来执行非查询SQL 指令,这些指令没有结果
.. 包括:CREATE TABLE / DROP TABLE / INSERT 等等
.. 例如:
① 创建一个名为"test"并带两个参数的表
SQLiteDatabase myDataBase=this.openOrCreateDatabase("myDataBase.db",
MODE_PRIVATE, new CursorFactory(){
//创建新的数据库,名称myDatabase,模式MODE_PRIVATE,鼠标工厂
//工厂类,一个可选工厂类,当查询时调用来实例化一个光标
@Override
public Cursor newCursor(SQLiteDatabase db,
SQLiteCursorDriver masterQuery, String editTable,
SQLiteQuery query) {
// TODO Auto-generated method stub
return null;
}
});
//删除指定名称的数据库
this.deleteDatabase("myDatabase.db");
//创建一个名为:myDataBase的数据库,后缀为.db
SQLiteDatabase my_DataBase=this.openOrCreateDatabase("myDateBase.db",
MODE_PRIVATE, null);
my_DataBase.close();//不要忘记关闭数据库
//创建一个名为"test"并带两个参数的表
my_DataBase.execSQL("CREATE TABLE test (_id INTEGER PRIMARY KEY,
someNumber INTERGER);");
② 在数据库中插入一个元组
③ 删除表
查询SQL指令-游标Cursors
􀂾 Android 使用游标(Cursors)来导航浏览查询结果
􀂾 游标(Cursors)被android.database.Cursor 对象来描述
􀂾 一个游标(Cursors)是一个简单的指针,它从查询结果的一个元组跳到下一个元组(或是前一个或是第
一个或是……)
􀂾 游标(Cursors)在它定位位置的那一刻返回元组数据
//在数据库中插入一个元组
my_DataBase.execSQL("INSERT INTO test (_id,someNumber) values(1,8);");
//删除表
my_DataBase.execSQL("DROP TABLE test");

//为了创建一个Cursor(游标),必须执行一个查询,要么通过SQL使用rawQuery()方法
//或是更精心设计的方法,像query()方法
Cursor cur=my_DataBase.rawQuery("SELECT * FORM test", null);
if(cur!=null){//游标不为空
//返回给定名称的列的基于0开始的index,如果该属性列不存在则返回-1
//通过它们的index来检索属性值
int numColumn=cur.getColumnIndex("someNumber");
if(cur.moveToFirst()){
//cur.moveToFirst()让游标指向第一行,如果游标指向第一行,则返回true
do {
int num=cur.getInt(numColumn);//获得当前行该属性的值
/*Cursor提供了不同的方法来回索不同的数据类型
例如getInt(int index)/getString(int index)等等*/
/*做一些事情*/
} while (cur.moveToNext());
/*游标移动到下一行,如果游标已经通过了结果集中的最后,
即没有行可以移动时,则返回false*/
//其他可能移动的是previous() 和first()方法
}
}
这个技术是Android开发当中非常重要的一个技术,能让你如虎添翼,开始上班了,春节快乐。