我是 Android 新手,我必须创建一个需要使用 SQLite 数据库的应用程序。我对 SQLite 的装备不太好。
你能告诉我这个SQLiteOpenHelper类的目的和用途,并提供一个简单的数据库创建和插入示例吗?
我是 Android 新手,我必须创建一个需要使用 SQLite 数据库的应用程序。我对 SQLite 的装备不太好。
你能告诉我这个SQLiteOpenHelper类的目的和用途,并提供一个简单的数据库创建和插入示例吗?
Sqlite 助手类帮助我们管理数据库创建和版本管理。SQLiteOpenHelper 负责所有数据库管理活动。要使用它,
1.OverrideonCreate(), onUpgrade()的方法SQLiteOpenHelper。可选择覆盖 onOpen() 方法。
2.使用这个子类创建一个可读或可写的数据库,并使用 SQLiteDatabase 的四个 API 方法insert(), execSQL(), update(), delete()来创建、读取、更新和删除表的行。
创建 MyEmployees 表并选择和插入记录的示例:
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "DBName";
private static final int DATABASE_VERSION = 2;
// Database creation sql statement
private static final String DATABASE_CREATE = "create table MyEmployees
( _id integer primary key,name text not null);";
public MyDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Method is called during creation of the database
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL(DATABASE_CREATE);
}
// Method is called during an upgrade of the database,
@Override
public void onUpgrade(SQLiteDatabase database,int oldVersion,int newVersion){
Log.w(MyDatabaseHelper.class.getName(),
"Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
database.execSQL("DROP TABLE IF EXISTS MyEmployees");
onCreate(database);
}
}
现在你可以使用这个类,如下所示,
public class MyDB{
private MyDatabaseHelper dbHelper;
private SQLiteDatabase database;
public final static String EMP_TABLE="MyEmployees"; // name of table
public final static String EMP_ID="_id"; // id value for employee
public final static String EMP_NAME="name"; // name of employee
/**
*
* @param context
*/
public MyDB(Context context){
dbHelper = new MyDatabaseHelper(context);
database = dbHelper.getWritableDatabase();
}
public long createRecords(String id, String name){
ContentValues values = new ContentValues();
values.put(EMP_ID, id);
values.put(EMP_NAME, name);
return database.insert(EMP_TABLE, null, values);
}
public Cursor selectRecords() {
String[] cols = new String[] {EMP_ID, EMP_NAME};
Cursor mCursor = database.query(true, EMP_TABLE,cols,null
, null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor; // iterate to get each value.
}
}
现在您可以在活动中使用 MyDB 类来进行所有数据库操作。创建记录将帮助您插入值,类似地您可以拥有自己的更新和删除功能。
以下链接我帮助你
数据库助手类:
管理数据库创建和版本管理的助手类。
您创建一个实现和 可选的子类onCreate(SQLiteDatabase),并且此类负责打开数据库(如果存在),如果不存在则创建它,并根据需要对其进行升级。事务用于确保数据库始终处于合理状态。onUpgrade(SQLiteDatabase, int, int)onOpen(SQLiteDatabase)
此类使ContentProvider实现可以轻松地将数据库的打开和升级推迟到第一次使用,以避免因长时间运行的数据库升级而阻塞应用程序启动。
您需要更多参考此链接Sqlite Helper
DBHelper 类负责处理 sqlite 数据库的打开和关闭以及 sa 创建和更新,关于它是如何工作的一篇不错的文章在这里。当我开始使用 android 时,它非常有用(但是我最近一直在使用 Objective-c,并且忘记了它的大部分用途。
使用 Helper 类,您可以访问 SQLite 数据库,并可以通过覆盖 onCreate() 和 onUpgrade() 方法对其执行各种操作。
http://technologyguid.com/android-sqlite-database-app-example/