編輯:關於Android編程
/* (程序頭部注釋開始)
* 程序的版權和版本聲明部分
* Copyright (c) 2011, 煙台大學計算機學院學生
* All rights reserved.
* 文件名稱:數據庫應用—添加檢索操作(Retrieve)
* 作 者: 雷恆鑫
* 完成日期: 2012 年 08 月 14 日
* 版 本 號: V1.0
* 對任務及求解方法的描述部分
* 輸入描述:
* 問題描述:
* 程序輸出:
* 程序頭部的注釋結束
*/
以前用過的“db.rawQuery”語句可以用來直接做SQL查詢(程序如下),
[java]
public Cursor getall() {
return db.rawQuery("SELECT * FROM notes", null);
}
並返回查詢結果的指針,如果想實現檢索功能,可以再程序中使用更具彈性的“query”方法,來替換直接執行“SQL”語句的“rawQuery”方法。
修改後的“DummyDbAdapter.java”文件如下:
[java]
package com.demo.android.dummynote;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
public class NotesDbAdapter {
private static final String DATABASE_NAME = "notes.db";
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_TABLE = "notes";
private static final String DATABASE_CREATE = "creat table notes("
+ "_id INTEGER PRIMARY KEY," + "note TEXT," + "created INTEGER,"
+ "modified INTEGER" + ");";
private static class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
}
private Context mCtx = null;
private DatabaseHelper dbHelper;
private SQLiteDatabase db;
public NotesDbAdapter(Context ctx) {
this.mCtx = ctx;
}
public NotesDbAdapter open() throws SQLException {
dbHelper = new DatabaseHelper(mCtx);
db = dbHelper.getWritableDatabase();
return this;
}
public void close() {
dbHelper.close();
}
private static final String KEY_ROWID = "_id";
static final String KEY_NOTE = "note";
private static final String KEY_CREATED = "created";
String[] strCols = new String[]{
KEY_ROWID,
KEY_NOTE,
KEY_CREATED,
};
// get all entries
public Cursor getall() {
return db.query(DATABASE_TABLE, //Which table to Select
strCols, //Which columns to return
null, //WHERE clause
null, //WHERE arguments
null, //GROUP BY clause
null, //HAVING clause
null);//Order-by clause
}
}
重構:
由於“”字件符串只會在“”語句中使用一次,因此為了省下內存空間,而少聲明一個“”變量,即將“”與“”兩段和寫在一起,在其他程序中碰到次狀況,也可以這樣處理。
修改後的“DummyDbAdapter.java”文件如下:
[java]
package com.demo.android.dummynote;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
public class NotesDbAdapter {
private static final String DATABASE_NAME = "notes.db";
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_TABLE = "notes";
private static final String DATABASE_CREATE = "creat table notes("
+ "_id INTEGER PRIMARY KEY," + "note TEXT," + "created INTEGER,"
+ "modified INTEGER" + ");";
private static class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
}
private Context mCtx = null;
private DatabaseHelper dbHelper;
private SQLiteDatabase db;
public NotesDbAdapter(Context ctx) {
this.mCtx = ctx;
}
public NotesDbAdapter open() throws SQLException {
dbHelper = new DatabaseHelper(mCtx);
db = dbHelper.getWritableDatabase();
return this;
}
public void close() {
dbHelper.close();
}
private static final String KEY_ROWID = "_id";
static final String KEY_NOTE = "note";
private static final String KEY_CREATED = "created";
// get all entries
public Cursor getall() {
return db.query(DATABASE_TABLE, //Which table to Select
new String[]{KEY_ROWID, KEY_NOTE,KEY_CREATED}, //Which columns to return
null, //WHERE clause
null, //WHERE arguments
null, //GROUP BY clause
null, //HAVING clause
null);//Order-by clause
}
}
Android N 除了提供諸多新特性和功能外,還對系統和 API 行為做出了各種變更。 本文重點介紹您應該了解並在開發應用時加以考慮的一些重要變更。如果您之前發布過 A
前言 本文主要介紹在Android中怎樣來解析XML文件。主要采用的是SAX機制,SAX全稱為Simple API for XML,它既是一種接口,也是一個
13.如何全編譯代碼?由於上面介紹了如何連接真機進行調試,因此必須趕緊補充上全編譯的方法。因為要進行聯機調試,之前首先得將對應的代碼進行全編譯。很多新人在進行聯機調試的時
程序運行效果圖: package com.njupt.surface; import android.os.Bundle; import android.app