为什么使用SQLite的Constants接口来保存字段名称?

时间:2013-06-08 07:45:59

标签: java android sqlite constants

在“Hello,Android”的SQLite章节中,创建了一个接口Constants来保存一些常量字符串:表名和字段名。

为什么呢?如何直接使用TITLE"title"更有用?还有其他我想念的东西吗?

顺便说一下:如果我需要两张桌子,应该如何组织?我应该制作FirstTableConstantsSecondTableConstants接口吗?

2 个答案:

答案 0 :(得分:1)

如果您不止一次使用字符串,最好为它创建一个常量。 它可以防止多次创建字符串。 对象分配不是免费的,所以你会看到一些性能提升。

考虑在循环中创建字符串的情况。

for(int i=0;i<n;++i){
    System.out.println("title");
}

vs使用常数:

for(int i=0;i<n;++i){
    System.out.println(TITLE);
}

如果花费1ms来分配字符串&#34; title&#34;,则第一个循环代码的运行时间为N X 1ms。

使用常量构建SQL语句比为类型(文本,整数,)修饰符(唯一,非空)等重复创建语句关键字的新字符串更快。

 String TABLE_SCHEMA = "(" +
            ID + " integer primary key autoincrement, " +
            COL_FOO1 + " text, " +
            COL_FOO2 + " text, " +
            COL_FOO3 + " text, " + ...

如果你做&#34;文字,&#34;一个常量,你不是一遍又一遍地创建那个字符串,所以你的TABLE_SCHEMA字符串创建得更快。

 String TABLE_SCHEMA = "(" +
            ID + " integer primary key autoincrement, " +
            COL_FOO1 + TYPE_TEXT +
            COL_FOO2 + TYPE_TEXT +
            COL_FOO3 + TYPE_TEXT + ...

答案 1 :(得分:0)

如果你正在使用一个类,你应该将它们作为公共静态最终字符串TITLE =“Some Title”字段。最好以这种方式使用它,这样在输入命令时就不会出错。您只需键入变量名称。