【问题标题】:Android OrmLite pre-populate databaseAndroid OrmLite 预填充数据库
【发布时间】:2011-02-20 03:03:49
【问题描述】:

OrmLite 是否可以创建一个 sql 脚本文件来轻松地用数据填充数据库?我做了一些搜索,但找不到任何简单的东西。我知道我可以用数据创建一些对象,我只是在寻找一种更简洁的方法。

我正在考虑创建一个脚本文件,在加载时打开一个阅读器,然后通过 executeRaw() 方法将每个文件作为原始 SQL 处理。有什么想法吗?

【问题讨论】:

    标签: android sqlite orm ormlite


    【解决方案1】:

    只是想将我的解决方案发布给任何可能需要它的人

    try {
        tableDAO.updateRaw("DELETE FROM table");
        InputStream is = getResources().openRawResource(R.raw.populate_db);
        DataInputStream in = new DataInputStream(is);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));
        String strLine;
        while ((strLine = br.readLine()) != null) {
            tableDAO.updateRaw(strLine);
        }
        in.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    

    【讨论】:

    • 谢谢!这很好用。不过我有一些问题。你把它放在你的代码哪里? tableDAO.updateRaw“DELTE FROM table”在做什么?此外,如果其他人看到这一点,请记住将文件中的每个 INSERT 放在 1 行中。
    • 我将此代码用于测试目的,但假设您可以将它放在任何地方,只要表已初始化。把它放在主要活动 onCreate 的某个地方就可以了。不过,如果您要插入大量数据,我建议您生成一个单独的线程或 AsyncTask。 DELETE FROM 命令正在删除表中的所有现有数据以首先进行清理。
    【解决方案2】:

    好一个乔。我认为您对executeRaw() 的想法很接近,但请改用updateRaw()。更新句柄 INSERTDELETEUPDATE 语句。

    http://ormlite.com/docs/raw-update

    您当然应该首先致电TableUtils 来创建您的架构:

    http://ormlite.com/docs/tableUtils

    希望这会有所帮助。您将来可能希望使用邮件列表来解决问题:

    http://groups.google.com/group/ormlite-user/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-26
      • 2011-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多