Android内容提供商

时间:2010-10-08 14:07:30

标签: android android-manifest android-contentprovider

我想获得一个创建数据库的内容提供者代码。我正在使用位于这里的工具/ sqllite3.exe来检查数据库是否已创建。

请让我知道这件事的一步一步程序......

谢谢, -D

2 个答案:

答案 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

我现在有一个很好的内容提供商,可以让我轻松查询表格,并且比其他数据库灵活得多。