对数据库操作时,查询数据库会经常用到。在Android中查询数据库用到两个重要的类:
SQLiteDatabase:用来创建,删除,执行SQL命令,并执行其他常见的数据库管理任务。
query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy) 返回Cursor对象 table:数据库里边表的名称
columns:需要查询出来数据库列数组 selection:数据库查询条件,相当于where后面的条件。如果没有则用null代替
selectionArgs:数据库where条件后面经常会带?号,这个就是?号的替代者。如果没有则用null代替
groupBy:查询出来的数据是否需要分组。如果没有则用null代替 having:聚合操作。如果没有则用null代替
orderBy:查询出来的数据是否需要排序。如果没有则用null代替
Cursor:查询数据库返回的结果对象。
isFirst():返回游标是否指向第一行。 isLast():返回游标是否指向最后一行。
moveToFirst():移动光标到第一行。 moveToLast():将光标移动到最后一行。
moveToNext():将光标移动到下一行。 moveToPosition(int position):将光标移动到一个绝对位置。
moveToPrevious():移动光标到上一行。 getColumnIndex(String columnName):获得列索引,序号以0开始 getColumnIndexOrThrow(String columnName):返回给定列名称的从零开始的索引
获得数据连接对象:
- DatabaseHelper database = new DatabaseHelper(this
- .getApplicationContext());
- Log.i("haiyang:createdb=", "执行失败");
- SQLiteDatabase db = null;
- try
- {
- db = database.getWritableDatabase();
- }
- catch (SQLiteException ex)
- {
- db = database.getReadableDatabase();
- }
- this.query(db);
DatabaseHelper database = new DatabaseHelper(this .getApplicationContext()); Log.i("haiyang:createdb=", "执行失败"); SQLiteDatabase db = null; try { db = database.getWritableDatabase(); } catch (SQLiteException ex) { db = database.getReadableDatabase(); } this.query(db);
具体操作数据库方法:
- privatevoid query(SQLiteDatabase db)
- {
- Cursor cursor = db.query(TABLE_NAME, new String[]{TITLE,BODY}, null, null, null, null, null);
- //根据自己程序需要对数据库做对应的操作
- cursor.moveToLast();
- while(!cursor.isFirst())
- {
- String title = cursor.getString(cursor.getColumnIndexOrThrow(TITLE));
- Log.i("title = ", title);
- Log.i("cursor.getCount() = ", String.valueOf(cursor.getCount()));
- cursor.moveToPrevious();
- }
- }
private void query(SQLiteDatabase db) { Cursor cursor = db.query(TABLE_NAME, new String[]{TITLE,BODY}, null, null, null, null, null); //根据自己程序需要对数据库做对应的操作 cursor.moveToLast(); while(!cursor.isFirst()) { String title = cursor.getString(cursor.getColumnIndexOrThrow(TITLE)); Log.i("title = ", title); Log.i("cursor.getCount() = ", String.valueOf(cursor.getCount())); cursor.moveToPrevious(); } }