【问题标题】:the sqlite database is not created in my file explorer in eclips在 Eclipse 的文件资源管理器中未创建 sqlite 数据库
【发布时间】:2012-07-26 10:15:47
【问题描述】:

我创建了数据库,但是当我运行应用程序时,数据库没有创建,并且 catlog 中没有错误,请帮助我。 并且在 fileexplorer/data/data 中没有创建文件夹名称数据库 并且当我在 MySQLiteHelper 中打印一些东西到控制台类时,控制台上什么也没有打印。 请帮助我提前谢谢。

公共类 MySQLiteHelper 扩展 SQLiteOpenHelper {

public static final String TABLE_NAME_BOY = "question_boy";
public static final String ID_BOY = "_id";
public static final String QUESTION_BOY = "questions";
public static final String ANSWER_BOY = "answer";

public static final String TABLE_NAME_GIRL = "questions_girl";
public static final String ID_GIRL = "_id";
public static final String QUESTION_GIRL = "questions";
public static final String ANSWER_GIRL = "answer";

private static final String DATABASE_NAME = "bg.database";
private static final int DATABASE_VERSION = 3;

private static final String CREATE_TABLE_BOY = "create table "
        + TABLE_NAME_BOY + "(" + ID_BOY
        + "integer primary key autoincrement, " + QUESTION_BOY + " text, "
        + ANSWER_BOY + " text);";

private static final String CREATE_TABLE_GIRL = "create table "
        + TABLE_NAME_GIRL + "(" + ID_GIRL
        + "integer primary key autoincrement, " + QUESTION_GIRL + " text, "
        + ANSWER_GIRL + " text);";

public MySQLiteHelper(Context context, String name,
        CursorFactory factory, int version) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
    // TODO Auto-generated constructor stub
}

@Override
public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub

    db.execSQL(CREATE_TABLE_BOY);
    db.execSQL(CREATE_TABLE_GIRL);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub
    Log.w(MySQLiteHelper.class.getName(),

            "Upgrading database from version " + oldVersion + " to "

                        + newVersion + ", which will destroy all old data");

db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME_BOY);
db.execSQL("DROP TABLE IF EXISTS" + TABLE_NAME_GIRL);

onCreate(db);
}

}

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    这应该为你创建一个数据库......

    public class DBHandler extends SQLiteOpenHelper {
    
        private SQLiteDatabase sqliteDatabaseInstance_ = null;
    
        public DBHandler(Context context){
    
            super(context, "TESTDATABASE.db", null, 1);
            sqliteDatabaseInstance_ = getWritableDatabase();
            sqliteDatabaseInstance_.execSQL("PRAGMA foreign_keys = ON;");
        }
    
    @Override
        public void onCreate(SQLiteDatabase db) {
    
            try {
    
                db.execSQL("CREATE TABLE ACCOUNT (accountId INTEGER PRIMARY KEY, name TEXT)");
    
                db.execSQL("CREATE TABLE ORDER_DETAILS (orderNo INTEGER, accountId INTEGER," +
                        "FOREIGN KEY (accountId) REFERENCES ACCOUNT(accountId))");
            }catch (SQLiteConstraintException sqliteConstraintException) {
    
                System.out.println("sqliteConstraintException: " + sqliteConstraintException.getMessage());
            }catch (Exception e) {
    
                System.out.println("Exception in DBHandler.onCreate: "+e.getMessage());
            }
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
    
    }
    

    你的数据库文件应该在.........

    转到文件资源管理器 -----> 数据 ------> 数据 ------> com.test -----> TESTDATA.db

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      除非您的设备已root,否则您无法访问该文件。

      看看这个问题:

      Android: Where are database files stored?

      【讨论】:

      • 只是我想创建一个空数据库,但数据文件夹中没有创建数据库文件
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      相关资源
      最近更新 更多