在Android中预加载和维护静态数据到SQLite实例的最佳选择是什么?

时间:2011-07-22 20:02:39

标签: android sqlite android-2.2-froyo

我有一个Android应用程序,它基本上是一个考试模拟器,它会预先加载问题,用户可以获得一个简单的多选界面。

我的问题是,预加载或至少管理将数据预加载到SQL数据库的任务的最佳方法是什么?

我可以立即看到两个选项:

  1. 获取SQLite浏览器,手动插入每个条目。我不喜欢这样,因为感觉太“牛仔”
  2. 创建一个运行一次的实用程序类并插入一堆数据,我不喜欢这样,因为我认为在类文件中硬编码一堆插入是不错的做法。
  3. 此问题的最佳选择(对替代建议开放)是什么?我可以在启动时加载一个SQL插入脚本吗?

    数据将是静态的,如果需要更改,我将发布新版本的应用程序。我希望有200个问题,所以我不会有 mass 的插入。

    有什么想法吗?

2 个答案:

答案 0 :(得分:2)

本网站解释得很好:

http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

基本上,您将db放在assets文件夹中,然后在第一次运行应用程序时将db复制到正确的位置,您就可以使用它了。

我认为这是这个问题的重复: How can I embed an SQLite database into an application?

答案 1 :(得分:0)

我确实只为数组提供了牛仔方式的数据库。用这个

帮我自己查询
BufferedWriter bufferedWriter = null;

            String filename = "queries.txt";
            File file = new File(filename);
            String a = "\"";
            try {

                file.createNewFile();
                bufferedWriter = new BufferedWriter(new FileWriter(filename));

                int b=1;
              for(int i=0;i<restLat.length;i++)
              {



                String temp="INSERT INTO table VALUES (                  );";


                bufferedWriter.write(temp);
                bufferedWriter.newLine();

                }
            } catch (FileNotFoundException ex) {
            } catch (IOException ex) {
                ex.printStackTrace();
            } finally {

                try {
                    if (bufferedWriter != null) {
                        bufferedWriter.flush();
                        bufferedWriter.close();
                    }
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }