2016-05-26 52 views
0

我找不到在我的應用程序中創建的數據庫。
我看過其他類似的問題,我知道這可能是因爲我沒有root權限。
但是,我找不到手機上的實際應用程序文件夾。
在模擬器上的調試模式下,它在數據中,但我安裝apk時無法在手機上看到它。
當我按下按鈕時,它不會給出任何錯誤,所以我假設db正在被創建和使用。移動數據庫的位置

問題是:有什麼辦法可以移動創建數據庫的位置,這樣我就可以看到它。
還有沒有更好的方法來增加數據庫上的數字?

package com.example.a2618436.customersatsifaction; 

/** 
* Created by 2618436 on 06/05/2016. 

*/ 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.content.Context; 
import android.content.ContentValues; 
import android.database.Cursor; 

public class MyDBHandler extends SQLiteOpenHelper { 

    private static final int DATABASE_VERSION = 1; 
    private static final String DATABASE_NAME = "SurveyDB.db"; 
    private static final String TABLE_SURVEY = "Survey"; 

    public static final String KEY_ID= "id"; 
    public static final String KEY_HAPPY = "happy"; 
    public static final String KEY_SAD = "sad"; 

    public MyDBHandler(Context context, String name, 
         SQLiteDatabase.CursorFactory factory, int version) { 
     super(context, DATABASE_NAME, factory, DATABASE_VERSION); 
    } 

    public void onCreate(SQLiteDatabase db){ 
     String CREATE_SURVEY_TABLE = "CREATE TABLE " + 
       TABLE_SURVEY + "(" 
       + KEY_ID + " INTEGER PRIMARY KEY," + KEY_HAPPY 
       + " INTEGER," + KEY_SAD + " INTEGER" + ")"; 
     db.execSQL(CREATE_SURVEY_TABLE); 
    } 

    // 

    public void onUpgrade(SQLiteDatabase db, int oldVersion, 
       int newVersion){ 
     db.execSQL("DROP TABLE IF EXISTS " + TABLE_SURVEY); 
     onCreate(db); 

    } 
    //needs revision 
    public void addSurvey(MainActivity mainactivity) { 
     SQLiteDatabase db = this.getWritableDatabase(); 

     ContentValues values = new ContentValues(); 
     values.put(KEY_HAPPY, mainactivity.getHappy()); // Contact Name 
     values.put(KEY_SAD, mainactivity.getSad()); // Contact Phone Number 

     // Inserting Row 
     db.insert(TABLE_SURVEY, null, values); 
     db.close(); // Closing database connection 
    } 
} 

數據庫處理程序。

package com.example.a2618436.customersatsifaction; 

/** 
* Created by 2618436 on 06/05/2016. 

*/ 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.content.Context; 
import android.content.ContentValues; 
import android.database.Cursor; 

public class MyDBHandler extends SQLiteOpenHelper { 

    private static final int DATABASE_VERSION = 1; 
    private static final String DATABASE_NAME = "SurveyDB.db"; 
    private static final String TABLE_SURVEY = "Survey"; 

    public static final String KEY_ID= "id"; 
    public static final String KEY_HAPPY = "happy"; 
    public static final String KEY_SAD = "sad"; 

    public MyDBHandler(Context context, String name, 
         SQLiteDatabase.CursorFactory factory, int version) { 
     super(context, DATABASE_NAME, factory, DATABASE_VERSION); 
    } 

    public void onCreate(SQLiteDatabase db){ 
     String CREATE_SURVEY_TABLE = "CREATE TABLE " + 
       TABLE_SURVEY + "(" 
       + KEY_ID + " INTEGER PRIMARY KEY," + KEY_HAPPY 
       + " INTEGER," + KEY_SAD + " INTEGER" + ")"; 
     db.execSQL(CREATE_SURVEY_TABLE); 
    } 

    // 

     public void onUpgrade(SQLiteDatabase db, int oldVersion, 
        int newVersion){ 
      db.execSQL("DROP TABLE IF EXISTS " + TABLE_SURVEY); 
      onCreate(db); 

     } 
     //needs revision 
     public void addSurvey(MainActivity mainactivity) { 
      SQLiteDatabase db = this.getWritableDatabase(); 

      ContentValues values = new ContentValues(); 
      values.put(KEY_HAPPY, mainactivity.getHappy()); // Contact Name 
      values.put(KEY_SAD, mainactivity.getSad()); // Contact Phone Number 

      // Inserting Row 
      db.insert(TABLE_SURVEY, null, values); 
      db.close(); // Closing database connection 
     } 
    } 
+1

爲什麼你需要訪問設備上的數據庫?你可以在DDMS中檢查它(請考慮在仿真器上開發,而不是在物理設備上開發 - 這是最糟糕的實踐)。 –

+1

** 1 ** - 如果您願意,您可以在存儲上創建數據庫。然後你會受到欺騙。 ** 2 ** - 你是什麼意思'也有更好的方法來增加數據庫上的數字嗎? –

+0

我無法在模擬器上找到數據庫,所以我不認爲它實際上已經創建。它不在com.example文件夾中,我認爲它應該是。 – user3603437

回答

0

如果你正在寫DB操作,你應該有一個根深蒂固的設備或您可以嘗試Genymotion(預植根)爲this.You可以看到你的數據庫文件/data/data/com.yourpackage.com/databases/yourdb.db。你可以很容易地看到分貝有數據或不通過安裝RootExplorer應用程序。

+0

謝謝,我會給這個去,但數據庫沒有顯示,所以它看起來不像數據庫正在創建。有什麼我在代碼中做錯了。 – user3603437

+0

是的,你可以嘗試另一種方式,當應用程序第一次午餐時將yourdb.db文件從資產複製到應用程序。 –

+0

謝謝,wheres資產,你是怎麼做到的? – user3603437