Android 在DDMS中找不到SQLITE数据库
我已经在这上面呆了一段时间了,iv修改了我的代码很多次,这让我很痛苦。无论如何,我在sql数据库浏览器中创建了一个DB,我一直在阅读如何将它放在我正在开发的应用程序中。所以我将它放在我的资产文件夹中,并创建了一个数据库助手java类。但我只能将我的DB文件放在eclipse DDMS I中看看堆栈溢出的答案,只是不知道问题出在哪里。我再次将DBHelper代码更改为,但我的DDMS中仍然没有DB文件 你看到的图像是我现在的样子。这是第一个计算机编码iv 我是android新手,谢谢Android 在DDMS中找不到SQLITE数据库,android,sql,Android,Sql,我已经在这上面呆了一段时间了,iv修改了我的代码很多次,这让我很痛苦。无论如何,我在sql数据库浏览器中创建了一个DB,我一直在阅读如何将它放在我正在开发的应用程序中。所以我将它放在我的资产文件夹中,并创建了一个数据库助手java类。但我只能将我的DB文件放在eclipse DDMS I中看看堆栈溢出的答案,只是不知道问题出在哪里。我再次将DBHelper代码更改为,但我的DDMS中仍然没有DB文件 你看到的图像是我现在的样子。这是第一个计算机编码iv 我是android新手,谢谢 您不必创
您不必创建数据库并在项目中手动移动它。如果它不存在,将自动创建它。因此,有两种方法可以重写以创建数据库,并在数据库版本更改时对其进行更改。就打电话
super(context, DB_NAME, null, 1);
在构造函数中,其中“1”是您的数据库版本。如果将其更改为“2”,并且数据库已经存在,则将调用“onUpgrade”
public void onCreate(SQLiteDatabase db)
如果数据库不存在,将自动调用。在本例中,您希望向其中添加表
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
如果设备上的数据库版本低于应用程序中给定的数据库版本,将自动调用。在这种方法中,如果表在不同版本之间发生了更改,则可以更改表
我建议创建第二个类来与数据库交互(打开/关闭/插入)。请看一下本教程:如果我理解您的意思是正确的,您不需要将就绪的SQLite文件添加到db文件夹中
使用SQLiteOpenHelper是正确的方法。这对我很有用。但是,我覆盖的唯一函数是
public void onCreate(SQLiteDatabase db)
public void onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion)
我想,我让它在默认位置创建数据库,在我应用程序内部存储区的根目录中
在您的情况下,如果我了解您发布的内容,您希望将数据库从资产文件夹复制到内部存储。我的建议分为四个部分:
String[]ddl=
{
创建表[T1]([id]整数不为空,[col1]字符)+
“创建表[T2]([id]整数不为空,[col2]字符)”;
};
db.beginTransaction();
尝试
{
for(int i=0,limit=ddl.length;i
你在DB类中重写了onCreate()方法吗?我真的不知道你对上面java中的onCreate()是怎么说的,因为我觉得很难理解。伙计,我做了十次,我又做了一次,把文件推到上面了,谢谢。我不知道我从这里走到哪里,但我被困在了一个教程上。谢谢
public void onCreate(SQLiteDatabase db)
public void onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion)
String[] ddl =
{
"CREATE TABLE [T1] ([id] INTEGER NOT NULL, [col1] CHAR);" +
"CREATE TABLE [T2] ([id] INTEGER NOT NULL, [col2] CHAR)";
};
db.beginTransaction();
try
{
for (int i = 0, limit = ddl.length; i < limit; i++)
db.execSQL (ddl [i]);
} finally {
db.endTransaction();
}