直接导入的源代码,程序没有报错。但是应该自动创建的一个data.db数据库在fileexplre中找不到
package com.szy.sqlite.dao;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
/**
* @author coolszy
* @blog http://blog.csdn.net/coolszy
*/
public class DBOpenHelper extends SQLiteOpenHelper
{
private static final int VERSION = 1;
private static final String DBNAME = "data.db";
private static final String TAG = "数据库创建";
public DBOpenHelper(Context context)
{
super(context, DBNAME, null, VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL("create table t_student (sid integer primary key,name varchar(20),age integer)");
Log.i(TAG, "数据库创建成功");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
}
}
信息也没有提示出来。本来是不用执行任何操作,只要安装到虚拟机上数据库就应该自动创建了的
执行了这个测试方法数据库创建出来了。但是原程序的getWritableDatabase()在另一个java文件的add方法中才有
public DBOpenHelper(Context context)
{
super(context, DBNAME, null, VERSION);
}
意思是这个方法不会创建一个数据库,只有执行add之类的方法数据库才会创建出来吗?
不是啊,getWritableDatabase()这个方法的意思是更改数据库的内容,如果没有数据库就自动创建数据库,所以只要执行了getWritableDatabase()就会创建数据库
本回答被提问者和网友采纳