前几篇关于"SQLiteDatabase" 时候 辅助类"SQLiteOpenHelper"的地位
今天在把 SQLiteDatabase 与 SQLiteOpenHelper 试图整合 有点想法 与大家分享分享
[思路]
1. SQLiteDatabase 用于数据库操作 所以必须返回一个句柄
2. SQLiteOpenHelper 用于协助SQLiteDatabase
[代码 步骤]
1. 定义 SQLiteHandler 的内部类 DBHelper 定义如下:
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("CREATE TABLE IF NOT EXISTS "
+ TB_NAME + " ("
+ ID + " INTEGER PRIMARY KEY,"
+ COUNTRY + " VARCHAR,"
+ CODE + " INTEGER)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS "+TB_NAME);
onCreate(db);
}
}
2. 定义 SQLiteHandler 构造函数 及 获取 SQLiteDatabase 句柄 的 函数 如下:
DBHelper dbHelper;
static SQLiteDatabase sqliteInstance;
Context context;
public SQLiteHandler(Context c,String name,int version){
context = c;
dbHelper = new DBHelper(context,name,null,version);
sqliteInstance = dbHelper.getWritableDatabase();
}
public static SQLiteDatabase GetSQLiteHandler(){
return sqliteInstance;
}
3. 如何使用
public class SQLiteHandlerUsage extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SQLiteHandler handler = new SQLiteHandler(this,"countrycode.db",1);
SQLiteDatabase db = handler.GetSQLiteHandler();
ContentValues values = new ContentValues();
values.put(SQLiteHandler.COUNTRY, "中国");
values.put(SQLiteHandler.CODE, 86);
db.insert(SQLiteHandler.TB_NAME,SQLiteHandler.ID, values);
ContentValues values2 = new ContentValues();
values2.put(SQLiteHandler.COUNTRY, "台湾");
values2.put(SQLiteHandler.CODE, 186);
db.insert(SQLiteHandler.TB_NAME,SQLiteHandler.ID, values2);
db.insert(SQLiteHandler.TB_NAME,SQLiteHandler.ID,null);
values.clear();
values.put(SQLiteHandler.COUNTRY, "意大利");
values.put(SQLiteHandler.CODE, 39);
db.update(SQLiteHandler.TB_NAME, values,SQLiteHandler.ID + " = 2",null);
db.execSQL("INSERT INTO "
+ SQLiteHandler.TB_NAME + "("
+ SQLiteHandler.COUNTRY + ","
+ SQLiteHandler.CODE + ") VALUES "
+ "('洪都拉斯',504)");
Cursor c = db.query(SQLiteHandler.TB_NAME,null,null,null,null,null,
SQLiteHandler.CODE+" DESC");
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_2,
c,
new String[] {SQLiteHandler.COUNTRY,SQLiteHandler.CODE},
new int[] {android.R.id.text1,android.R.id.text2});
adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
this.setListAdapter(adapter);
}
}
4. 运行效果 略过
分享到:
相关推荐
本篇文章将详细探讨如何将两者整合,实现数据的添加、查询和其他操作。 首先,我们需要创建一个SQLite数据库。在Android中,我们通常通过扩展SQLiteOpenHelper类来实现,这个类提供了创建、升级和打开数据库的方法...
SQLiteDatabase是Android系统中对SQLite数据库的封装,它是Android SDK的一部分,提供了与SQLite数据库进行交互的接口和类。开发者可以通过SQLiteDatabase来创建、更新、查询和管理数据库。 在Android应用开发中,...
因为数据库的操作在开发中的重要性是不言而喻的,所以,在数据库这一方面下了很大的功夫,终于掌握了基本的操作,包括建表和删除,对数据库的操作,“增删改查”基本操作,而且用了封装性来实现,是学习数据库的一个...
标题"SQLiteDatabase"可能指的是一个特定的C++库或者项目,这个项目为开发者提供了一个更加方便的接口来操作SQLite数据库。根据描述,这个封装库在`main`函数中提供了示例代码,这对于初学者来说非常友好,可以快速...
本文将深入探讨如何使用`SqliteDatabase`进行数据库操作,并结合`Menu`来实现查询、新增、修改和删除功能。 首先,`SqliteDatabase`是Android提供的一个轻量级数据库引擎,它基于SQLite,支持大部分SQL语法。为了...
在本例"androidDb.rar_ SQLiteDatabase_SQLiteDatabase_android"中,我们将探讨如何在Android应用中使用SQLite数据库。 SQLite数据库的核心类是`SQLiteDatabase`,它是Android提供的一个接口,用于执行SQL语句和...
Android 数据库SQLiteDatabase的使用 1.数据库辅助操作接口SQLiteDatabaseOpenHelper的使用 2.ContentValues的使用 3.数据的增删改查 4.listView 与Adapter的使用 5.OptionsMenu的使用 6.Editext隐藏失去焦点的方法
`SQLiteDatabase`对象提供了执行SQL语句的方法,如`insert()`, `query()`, `update()`, 和 `delete()`。以下是一些基本示例: ```java public class DatabaseHelper extends SQLiteOpenHelper { // ... public ...
在本实验“安卓开发实验6——SQLite和SQLiteDatabase应用”中,我们将深入学习如何在Android应用程序中集成SQLite数据库来存储和检索数据,特别是新闻信息。我们将使用ListView组件来动态地展示这些新闻内容,提供...
在这个主题中,我们将深入探讨如何在Android环境下使用SQLiteDatabase来直接存取数据和图像。 首先,要使用SQLite数据库,我们需要创建一个SQLiteOpenHelper的子类。这个类有两个关键方法:`onCreate()` 和 `...
在Android开发中,SQLite数据库是一种常用的轻量级数据库,它被广泛用于存储应用程序的数据。SQLite数据库的优势在于...通过这个练习,初学者可以逐步熟悉Android数据库编程,为进一步的Android应用开发打下坚实基础。
SQLite是Android系统中内置的关系型数据库,用于存储和管理应用程序中的结构化数据。在这个"SQLiteDataBase简单...在这个实例中,你可以进一步学习如何结合Android组件与SQLite进行数据交互,提升你的Android开发技能。
### Android SQLiteDatabase的使用详解 在Android开发过程中,`SQLiteDatabase`是进行本地数据存储的核心类之一,它提供了创建和查询SQLite数据库的方法。SQLite是一种轻量级的嵌入式数据库引擎,广泛应用于移动...
本示例主要关注`SQLiteDatabase`的增删改查操作,并且对比了Android自带的SQLite API与第三方库greenDao的使用方法。 一、`SQLiteDatabase`的基本操作 1. 增加(Add):在Android中,我们首先需要创建一个...
一个关于SQLite数据库操作的android应用demo,通过本应用你可以学到:使用SQLiteDatabase操作SQLite数据库,使用SQLiteOpenHelper获取用于操作数据库的SQLiteDatabase实例
在Android应用开发中,SQLite是一个重要的组成部分,它是一个轻量级的、开源的、嵌入式的...在实际开发中,还可能涉及到事务处理、索引优化、数据备份恢复等高级功能,这些都是进一步提升应用性能和用户体验的关键。
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS my_table"); // 升级时删除旧表 onCreate(db); // 重新创建新表 } } ``` 在这个例子中,我们...
【实验七:SQLite和SQLiteDatabase的使用】 在Android开发中,SQLite是一个不可或缺的组件,用于存储和管理应用程序的结构化数据。SQLite是一个轻量级的、嵌入式的、支持事务的SQL数据库引擎,特别适合资源有限的...
在Android开发中,SQLite数据库是一个重要的组成部分,它为应用程序提供了本地数据存储的能力。SQLite是一个轻量级的数据库系统,内置于Android操作...通过Cursor,我们可以遍历查询结果并进行进一步的业务逻辑处理。