2011-04-02 119 views

回答

8

理想情况下,从结构化的方式来处理这个问题的方法是让主要活动/服务与Utility类进行交互,该类可直接与数据库进行通信,而不是与其自身的活动/服务进行交互。

通过这样做,您可以模块化这个过程,使得它比在一个类中全部处理更容易处理。具体地,流动将遵循此

活动/服务 - >数据库工具类 - >数据库

活性通过实用程序类获得的数据库的结果。你可以拥有所有的数据库功能,比如在工具类中添加,减少和编辑记录。

具体来说,你需要寻找到SQLiteOpenHelper

public class myDatabaseOpenHelper extends SQLiteOpenHelper { 

    public myDatabaseOpenHelper(Context context) { 
     super(context, (Database Name), null, (Database Version)); 

    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 

     // create event database & category database 
     db.execSQL([TableCreationStatementHere]); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 


    } 

} 

有一点要提的是首先在纸上创建表,并建立了关系,要列名,然后建立这样声明:

public static String CREATE_EVENTDATABASE = "CREATE TABLE " + TABLE_EVENTS 
      + " (" + COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
       + COL_NAME + " TEXT, " 
         + COL_DATE + " TEXT NOT NULL, " 
         + COL_TIME + " TEXT NOT NULL, " 
         + COL_DATETIME + " TEXT, " 
         + COL_IMAGE + " TEXT, " 
         + COL_NOTE + " TEXT, " 
         + COL_REPEAT + " INTEGER, " 
       + COL_REPEAT_INTERVAL + " INTEGER, " 
         + COL_REMINDER + " INTEGER, " 
       + COL_CATEGORY + " TEXT, " 
         + COL_FLAG + " INTEGER)"; 

那么您已经创建了表后,再随便抓一个手柄到您的数据库,像这样:

myDatabaseOpenHelper helper = new myDatabaseOpenHelper(getApplicationContext()); 
SQLiteDatabase database = helper.getWritableDatabase() 

此行将返回一个链接到您的数据库,在那里你可以查询,删除,如有必要更新!

+0

好的,谢谢!这似乎并不困难。 – 2011-04-02 18:47:24