我想获得一个创建数据库的内容提供者代码。我正在使用位于这里的工具/ sqllite3.exe来检查数据库是否已创建。
请让我知道这件事的一步一步程序......
谢谢, -D
答案 0 :(得分:3)
您不使用ContentProvider创建数据库,而是使用SQLiteOpenHelper类。至少那是更好的方式
class MyDatabase extends SQLiteOpenHelper {
public MyDatabase(Context context, dbName, null, version){
super(context, dbName, null, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String createItemsTable = "create table mytable ("+
"_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"_title TEXT NOT NULL, " +
"_subtitle TEXT NULL " +
" );";
// Begin Transaction
db.beginTransaction();
try{
// Create Items table
db.execSQL(createItemsTable);
// Transaction was successful
db.setTransactionSuccessful();
} catch(SQLException ex){
Log.e(this.getClass().getName(), ex.getMessage(), ex);
} finally {
// End transaction
db.endTransaction();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String dropItemsTable = "DROP TABLE IF EXISTS mytable";
// Begin transaction
db.beginTransaction();
try {
if(oldVersion<2){
// Do your update/alter code here
}
db.setTransactionSuccessful();
} catch(Exception ex){
Log.e(this.getClass().getName(), ex.getMessage(), ex);
} finally {
// Ends transaction
// If there was an error, the database won't be altered
db.endTransaction();
}
}
}
他们只是用
实例化你的助手MyDatabase myDb = new MyDatabase(getContext(),"databasename.db", null, 1);
然后帮助程序将创建数据库,如果它不存在,则在存在旧版本时升级它,或者只是在存在并且版本匹配时将其打开
答案 1 :(得分:1)
我使用了本教程
http://www.devx.com/wireless/Article/41133/1763/page/2
我现在有一个很好的内容提供商,可以让我轻松查询表格,并且比其他数据库灵活得多。