将.sql文件导入Android中的Sqlite数据库

时间:2014-04-06 06:22:00

标签: android sql sql-server sqlite

在我的Android应用程序中,现有数据库使用资产。

假设我在资产文件夹中有一个数据库,名称是" a.sqlite"。它有一个名为" t"的表。我想下载一个名为" t2.sql"的表。从我的服务器。 下载" t2.sql"我想插入" t2"的所有值。表到" t"以编程方式在Android中的表

假设这是主数据库表

| id | name  | dt1 | dt2 | dt3 | 
| 1  | Paul  | 21  | 98  | 91  |
| 2  | John  | 22  | 44  | 11  |
| 3  | George| 21  | 31  | 22  |
| 4  | Ringo | 20  | 10  | 15  | 

我想将这个sql表插入主表

| id | name   | dt1 | dt2 | dt3 | 
| 1  | Paul_2  | 21  | 98  | 91  |
| 2  | John_2  | 22  | 44  | 11  |
| 3  | George_2| 21  | 31  | 22  |
| 4  | Ringo_2 | 20  | 10  | 15  | 

我的sql表也有CREATE TABLE语句和BEGIN TRANSACTION / COMMIT语句。这应该很容易,因为在Firefox SQLite管理器中我只使用导入,这个表加入我的数据库。但我怎么能在android中做我不知道

1 个答案:

答案 0 :(得分:0)

我从您的问题中了解到,您希望将所有值从一个表映射到另一个表。为此,您必须首先从该表中获取所有值,然后将其转储到另一个表中。

首先,您需要做的是从表t2.sql中获取值。现在我假设您知道如何使用t2.sql文件来获取表实体和数据。一旦你得到它你只需要在t1批量插入记录。

通过以下代码段(伪代码)

批量插入所有值
try
{
  db.beginTransaction();
  for each record in the list
  {
    do_some_processing();
    if (line represent a valid  entry)
    {
      db.insert(TABLE_T1, null, SOME_VALUE);
    }
    some_other_processing();
  }
  db.setTransactionSuccessful();
}
catch (SQLException e) {}
finally
{
  db.endTransaction();
}

希望这会对你有所帮助。如果您需要我详细说明,请告诉我