Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 最佳实践:使用SQLiteOpenHelper定义大型数据库?_Android_Android Sqlite - Fatal编程技术网

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

Android 最佳实践:使用SQLiteOpenHelper定义大型数据库?,android,android-sqlite,Android,Android Sqlite,我有一个扩展SQLiteOpenHelper的类,在这个类中我定义了要创建的数据库表和列。这些字符串如下所示: public String AS_COLUMN_A_BTN5 = "a_btn5"; 然后,我为每个CREATETABLE语句定义了一个字符串。这些表是在onCreate()方法中创建的 问题是我有50多列,所以文件变得非常长,无法管理 定义大量列的最佳实践是什么 在文件中编写create-database.sql脚本,并将其保存到/assets文件夹中 在SQLiteOpenHel

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

public String AS_COLUMN_A_BTN5 = "a_btn5";
然后,我为每个CREATETABLE语句定义了一个字符串。这些表是在onCreate()方法中创建的

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

定义大量列的最佳实践是什么

  • 在文件中编写create-database.sql脚本,并将其保存到/assets文件夹中
  • SQLiteOpenHelper
    中使用以下命令:
  • 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语句的方法。你可以从(我很久以前读过一个博客,很遗憾,我已经不记得了)下载它

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


    如果您有问题,请告诉我。

    如果您使用的列太多,文件变得无法管理,您可能应该重新考虑数据库设计。