我在stackoverflow上已经读过大约5个线程但仍然不知道如何做到这一点。 我已经有sqlite数据库,我不知道在我的android工作室项目中把它放在哪里。 我想用应用程序下载数据库。
答案 0 :(得分:3)
它并不是假装最好的方式,但这就是我在项目中的表现: 您的数据库应位于res / assets目录中。 这是我的DataBaseHelper类的一部分,可能对您有所帮助:
public class DataBaseHelper {
private static final String DB_NAME = "yourname.db";
private Context mContext;
private SQLiteDatabase mSQLiteDatabase;
public DataBaseHelper(Context context) {
mContext = context;
}
public void openOrCreate() {
File dbFile = mContext.getDatabasePath(DB_NAME);
if (!dbFile.exists())
copyDatabase(dbFile);
mSQLiteDatabase = SQLiteDatabase.openDatabase(dbFile.getPath(), null, SQLiteDatabase.OPEN_READWRITE);
}
private void copyDatabase(File dbFile) {
InputStream is = null;
OutputStream os = null;
try {
mContext.openOrCreateDatabase(DB_NAME, Context.MODE_PRIVATE, null);
is = mContext.getAssets().open(DB_NAME);
os = new FileOutputStream(dbFile);
byte[] buffer = new byte[1024];
while (is.read(buffer) > 0) {
os.write(buffer);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (os != null) os.close();
if (is != null) is.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
答案 1 :(得分:0)
如果你想要一个预加载的数据库,那么一般的方法是 1.将sqlite文件放在资产文件夹中。 2.将该文件复制到数据目录。
幸运的是,有一个非常简单的&易于使用的Git库Android Asset Helper。看看他们的用法示例。
答案 2 :(得分:0)
您必须创建一个为您处理数据库的类(.java文件)。该类自动在android devide中创建SQLite数据库。例如,这是我正在使用的Android应用程序的示例代码:
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "database.db";
private static final int SCHEMA = 3;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, SCHEMA);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE VISITAS (" +
"Id_Visita INTEGER PRIMARY KEY AUTOINCREMENT, " +
...
");");
}
...
}
添加更多有关您遇到的问题或疑问的详细信息。