如果我们已经拥有.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应用程序/ –