如果我們已經擁有.sql格式的數據庫文件,我們如何在我們的android應用程序&中使用它的數據加載這個數據?在android中使用Sqlite數據庫
0
A
回答
1
我給你完整的代碼中使用,PLZ回覆,如果你成功
public class DataBaseHelper extends SQLiteOpenHelper{
private Context mycontext;
private String DB_PATH = "/data/data/gr.peos/databases/";
//private String DB_PATH = mycontext.getApplicationContext().getPackageName()+"/databases/";
private static String DB_NAME = "BLib.sqlite";//the extension may be .sqlite or .db
public SQLiteDatabase myDataBase;
/*private String DB_PATH = "/data/data/"
+ mycontext.getApplicationContext().getPackageName()
+ "/databases/";*/
public DataBaseHelper(Context context) throws IOException {
super(context,DB_NAME,null,1);
this.mycontext=context;
boolean dbexist = checkdatabase();
if(dbexist)
{
//System.out.println("Database exists");
opendatabase();
}
else
{
System.out.println("Database doesn't exist");
createdatabase();
}
}
public void createdatabase() throws IOException{
boolean dbexist = checkdatabase();
if(dbexist)
{
//System.out.println(" Database exists.");
}
else{
this.getReadableDatabase();
try{
copydatabase();
}
catch(IOException e){
throw new Error("Error copying database");
}
}
}
private boolean checkdatabase() {
//SQLiteDatabase checkdb = null;
boolean checkdb = false;
try{
String myPath = DB_PATH + DB_NAME;
File dbfile = new File(myPath);
//checkdb = SQLiteDatabase.openDatabase(myPath,null,SQLiteDatabase.OPEN_READWRITE);
checkdb = dbfile.exists();
}
catch(SQLiteException e){
System.out.println("Database doesn't exist");
}
return checkdb;
}
private void copydatabase() throws IOException {
//Open your local db as the input stream
InputStream myinput = mycontext.getAssets().open(DB_NAME);
// Path to the just created empty db
String outfilename = DB_PATH + DB_NAME;
//Open the empty db as the output stream
OutputStream myoutput = new FileOutputStream("/data/data/gr.peos/databases/BLib.sqlite");
// transfer byte to inputfile to outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = myinput.read(buffer))>0)
{
myoutput.write(buffer,0,length);
}
//Close the streams
myoutput.flush();
myoutput.close();
myinput.close();
}
public void opendatabase() throws SQLException
{
//Open the database
String mypath = DB_PATH + DB_NAME;
myDataBase = SQLiteDatabase.openDatabase(mypath, null, SQLiteDatabase.OPEN_READWRITE);
}
public synchronized void close(){
if(myDataBase != null){
myDataBase.close();
}
super.close();
}
//Your methods to insert view contents of database
+0
thnx很多Jaydeep。它工作得很好。 – Ankit
1
您可以使用SQLiteOpenHelper。
請參考Using SQLite Database with Android,其中用示例清楚說明。 所以,你可以db.execSQL("sql statements"):
相關問題
- 1. 在Android中使用SQLite數據庫
- 2. SQLite數據庫與我使用Android中SQLite數據庫條款
- 3. android - 使用SQLite數據庫
- 4. 在Android中使用Fragment在SQLite數據庫中添加數據
- 5. 在Android庫中創建SQLite數據庫
- 6. android通用SQLite數據庫
- 7. SQLite數據庫中的Android
- 8. Android SQLite數據庫
- 9. Android-SQLite數據庫
- 10. Android。 SQLite數據庫
- 11. sqlite數據庫android
- 12. Android SQLite數據庫
- 13. 使用Sqlite數據庫的Android syncAdapter
- 14. Android數據庫錯誤使用SQLite
- 15. 如何使用android中的SQLite數據庫從數據庫中選擇數據?
- 16. 如何在SQLite數據庫的onCreate()函數中使用getWritableDatabase? (Android)
- 17. 在Xamarin.Forms中使用SQLite數據庫
- 18. 在android中刪除SQLite數據庫
- 19. 在android中升級Sqlite數據庫?
- 20. SQLite不打開數據庫在Android中
- 21. 在sqlite數據庫中的錯誤Android
- 22. 在android中創建SQLite數據庫
- 23. android在sqlite數據庫類中出錯
- 24. 在sqlite數據庫中插入datetime android
- 25. 在Android Studio中管理SQLite數據庫
- 26. Android:在Sqlite數據庫中插入datetime
- 27. 在SQLite數據庫中選擇Android
- 28. 在Android中升級SQLite數據庫
- 29. 在android中打開sqlite數據庫
- 30. 在PhoneGap中訪問Android SQLite數據庫
請檢查是重複的問題。 – Nikhil
[看看它/ ..](http://developer.android.com/guide/topics/data/data-storage.html) – ngesh
參考這個 http://www.reigndesign.com/blog/使用你自己的SQLite數據庫在android應用程序/ –