Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加检索操作(Retrieve)
来源:互联网 发布:淘宝买东西后店铺消失 编辑:程序博客网 时间:2024/05/23 19:12
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:数据库应用—添加检索操作(Retrieve)
* 作 者: 雷恒鑫
* 完成日期: 2012 年 08 月 14 日
* 版 本 号: V1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
以前用过的“db.rawQuery”语句可以用来直接做SQL查询(程序如下),
public Cursor getall() { return db.rawQuery("SELECT * FROM notes", null); }
并返回查询结果的指针,如果想实现检索功能,可以再程序中使用更具弹性的“query”方法,来替换直接执行“SQL”语句的“rawQuery”方法。
修改后的“DummyDbAdapter.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}@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stubdb.execSQL(DATABASE_CREATE);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stubdb.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 entriespublic Cursor getall() {return db.query(DATABASE_TABLE, //Which table to SelectstrCols, //Which columns to returnnull, //WHERE clausenull, //WHERE argumentsnull, //GROUP BY clausenull, //HAVING clausenull);//Order-by clause}}
重构:
由于“”字件符串只会在“”语句中使用一次,因此为了省下内存空间,而少声明一个“”变量,即将“”与“”两段和写在一起,在其他程序中碰到次状况,也可以这样处理。
修改后的“DummyDbAdapter.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}@Overridepublic void onCreate(SQLiteDatabase db) {// TODO Auto-generated method stubdb.execSQL(DATABASE_CREATE);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// TODO Auto-generated method stubdb.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 entriespublic Cursor getall() {return db.query(DATABASE_TABLE, //Which table to Selectnew String[]{KEY_ROWID,KEY_NOTE,KEY_CREATED}, //Which columns to returnnull, //WHERE clausenull, //WHERE argumentsnull, //GROUP BY clausenull, //HAVING clausenull);//Order-by clause}}
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加检索操作(Retrieve)
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加数据(Create)
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加查询
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —删除数据
- Android开发—数据库应用—访问数据表(SQLite OpenHelper)
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —查询单条记录、修改
- Android开发—数据库应用—手动创建(SQLite)数据库--手动创建数据表(table)
- Android开发—数据库应用—使用数据库(SQLite)--查看模拟器目录
- Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库
- Android——使用SQLite数据库访问
- Android——使用SQLite数据库访问
- android开发学习(三)——sqlite数据库
- Android开发——SQLite数据库初体验(一)
- Android开发——SQLite数据库初体验(二)
- Kotlin开发Android笔记13:Android数据库(SQLite)操作
- Android中SQLite数据库操作(2)——使用SQLiteDatabase提供的方法操作数据库
- Android开发—数据库应用—添加列表活动(ListActivity)--分析记事本程序
- Android开发笔记(三十)SQLite数据库基础操作
- android U盘检测及获取内存信息
- 创新还是等死?新版微信引发运营商内部激辩
- 导图 SQL Server之事务
- 指针运算——算术运算、关系运算
- SqlServer字段类型详解
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加检索操作(Retrieve)
- 杭电1151 Air Raid
- 文件上传对应的一个Servlet类
- 互联网大佬生存法则:如何防守周鸿祎?
- 为什么付费用户才是“最好”的用户
- C#和JAVA中的构造器的详解
- Windows2008 IIS7+PHP 5.3.5配置PHP图解
- 线程间通讯《代码》pthread_cond_wait/signal
- 引用类型的赋值、浅拷贝和深拷贝的区别