Хорошо, поэтому я действительно нашел решение, которое является базой данных НЕЗАВИСИМЫМ, чтобы довольно легко импортировать базу данных из файла .Sql !! :)
Итак, какая бы база данных у вас не была (Mysql, Sqlite, ...), выполните следующие действия:
1) экспортируйте вашу базу данных в формат .sql.
(Этот файл .sql будет содержать все команды sql, такие как CREATE TABLE ... INSERT INTO table ...)
(Возможно, вам придется удалить строки, начинающиеся с CREATE TABLE, и оставить только те строки, которые начинаются с INSERT ...)
2) Затем на языке, который вы используете, напишите некоторый код, который читает каждую строку файлов Sql Lite и сохраняет ее в массив строк (String [])
3) Затем выполните каждую строку, содержащуюся в массиве String [], как команду sql
Я реализовал это в Java:
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.List;</p>
<p>import android.content.Context;
import android.database.sqlite.SQLiteDatabase;</p>
<p>public class DatabaseImporter {</p>
<code>private static DatabaseImporter instance;
public static DatabaseImporter getInstance(){
if(DatabaseImporter.instance == null)
instance = new DatabaseImporter();
return DatabaseImporter.instance;
}
private DatabaseImporter (){
}
public void importDatabaseFromFile(Context context, String databaseName , String filePath){
SQLiteDatabase database = //CREATE UR DATABASE WITH THE COMMAND FROM THE DATABASE API YOUR USING
this.executeSqlCommands( database ,
this.readSqlCommandsFromFile(filePath)
);
}
private String[] readSqlCommandsFromFile(String filePath){
String[] sqlCommands = new String[0];
List<String> sqlCommandsList = new LinkedList<String>();
try{
// Open the file that is the first
// command line parameter
FileInputStream fstream = new FileInputStream(filePath);
BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
if(!strLine.equals("") && !strLine.equals(" ") && strLine != null)
sqlCommandsList.add(strLine);
}
//Close the input stream
in.close();
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
sqlCommands = new String[sqlCommandsList.size()];
sqlCommandsList.toArray(sqlCommands);
return sqlCommands;
}
private void executeSqlCommands(SQLiteDatabase database, String[] sqlCommands){
for(int i = 0; i < sqlCommands.length ; i++){
database.execSQL(sqlCommands[i]);
}
}
</code>
}