安卓系统自带SQLite数据库,SDK中对SQLite的操作由SQLiteDatabase完成,涉及到的类有如下几个:

1、SQLiteDatabase:代表数据库本身,支持对数据的标准SQL操作

2、Cursor:用来实现对查询结果集的随机读写

下面代码实现如何打开数据库,并建立数据表:

SQLiteDatabase db;

db = openOrCreateDatabase(DB_NAME, this.MODE_PRIVATE, null); 

db.execSQL("DROP TABLE IF EXISTS students");    

db.execSQL("CREATE TABLE IF NOT EXISTS students (_id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR, age INTEGER)"); 

db.execSQL("insert into students values (null,?,?)",new Object[]{"Tom",30});

实际上,db.execSQL()函数就可以执行全部的SQL指令。

下面的代码实现如何通过Cursor循环读取数据表中的数据:

Cursor c = db.rawQuery("SELECT * FROM students",null); 




while (c.moveToNext())




{




int id = c.getInt(c.getColumnIndex("_id"));




String name = c.getString(c.getColumnIndex("name"));




System.out.printlin(id+name);




}




c.close();




db.close();








Cursor的另一些操作

通过getCount()方法得到结果集中有多少记录;

通过getColumnNames()得到字段名;

通过getColumnIndex()转换成字段号;

通过getString().getInt()等方法得到给定字段当前记录的值;

通过requery()方法重新还行查询得到游标;

通过close()方法释放游标资源。

Cursor的移动操作:

MoveToNext()

MoveToPrevious()

MoveToLast()

MoveToFirst()

Move(int offset)从当前位置向上或向下移动的行数,offset的正负分别代表向下和向上;

MoveToPosition(int position)移到position指定的行