最佳实践:使用SQLiteOpenHelper定义大型数据库?

时间:2013-04-05 01:57:46

标签: android android-sqlite

我有一个扩展SQLiteOpenHelper的类,我在其中定义了要创建的数据库表和列。这些字符串如下所示:

public String AS_COLUMN_A_BTN5 = "a_btn5";

然后我为每个CREATE TABLE语句定义了一个字符串。这些表是在onCreate()方法中创建的。

问题是我有超过50列,所以文件变得非常长且无法管理。

定义大量列的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

  1. 将create-database.sql脚本写入文件并将其保存到/ assets文件夹中。
  2. SQLiteOpenHelper中使用以下内容:
  3. onCreate

    @Override
    public void onCreate( SQLiteDatabase db )
    {
        InputStream in_stream = null;
        try {
            in_stream = mContext.getResources().getAssets().open( CREATE_SCRIPT );
            String[] statements = parseSqlFile( in_stream );
            for ( String statement : statements ) {
                db.execSQL( statement );
            }
        } catch ( IOException e ) {
            e.printStackTrace();
        } finally {
            try {
                if ( in_stream != null ) {
                    in_stream.close();
                }
            } catch ( Exception e ) {
            }
        }
    }
    

    在第8行,您会找到一个名为parseSqlFile()的方法。这是一个采用SQL脚本并将其拆分为sql语句的方法。你可以从here下载它(我在很久以前读过的博客中使用过它。不幸的是,我不记得了。)

    通过这种方式,您可以利用编辑器的语法突出显示来发现sql脚本中的拼写错误。

    如果您遇到问题,请告诉我。