Android SQLite SQL语句的正确格式

Android SQLite SQL语句的正确格式,android,sql,sqlite,Android,Sql,Sqlite,我有几个create语句,在Android应用程序中首次创建数据库时应该运行这些语句。它们的格式如下: <string-array name="uaDBcreates"> <item> CREATE TABLE pos_locations ( _id INTEGER PRIMARY KEY, location_name TEXT,

我有几个create语句,在Android应用程序中首次创建数据库时应该运行这些语句。它们的格式如下:

<string-array
        name="uaDBcreates">
        <item>
            CREATE TABLE pos_locations (
                _id INTEGER PRIMARY KEY,
                location_name TEXT,
                service_url TEXT,
                latitude REAL DEFAULT 0,
                longitude REAL DEFAULT 0
            );
        </item>
    </string-array>

    <string-array
        name="uaDBInserts">
        <item>
            INSERT INTO urbanAgendaDB.pos_locations (
                    _id,
                    location_name,
                    service_url
                    latitude,
                    longitude )
                VALUES (
                    000001,
                    OfficeTest,
                    http://myservice.com/DoStuff,
                    45.530315,
                    -73.569939);
        </item>
    </string-array>

创建表格位置(
_id整数主键,
位置名称文本,
服务url文本,
纬度实际默认值为0,
经度实际默认值为0
);
插入urbangendadb.pos_位置(
_身份证,
地点和名称,
服务地址
纬度,
经度)
价值观(
000001,
官方测试,
http://myservice.com/DoStuff,
45.530315,
-73.569939);

通常,这是可以在Android上的SQLite中运行的SQL语句的正确格式吗(这可能有效吗)?更具体地说,androiddocs状态SQL语句的某些部分不应该以分号结尾,而有些部分则没有提到分号

我没有使用带有直接SQL语法的
INSERT
语句,只是通过
SQLDatabase
API;但是根据我的经验,我想说你的
CREATE
语句会像写的那样工作

就API文档而言,它非常简单:将这些语句与任何允许分号的方法一起使用;如果需要将这些语句与不允许在结尾使用分号的方法一起使用,请去掉分号。(您也可以采用另一种方法:在语句中避免使用分号,然后仅当您将这些语句与需要分号的API方法一起使用时,才添加正确的结尾标点。)


然而,我有点困惑于这样一个事实:您将SQL语句包含在XML中(更不用说它们是
字符串数组中的唯一项了)。通常,我习惯于在Java代码中以
String
串联的形式看到它们。

使用字符串数组是因为可能要运行多个语句。我将它们放在XML文件中的原因是将与DB相关的所有内容都保留在适当的位置。如果您能给我指一下显示保存SQL语句的最佳位置的资源,因为我读过的所有教程和资源都非常简单;仅显示在Android上使用SQLite所需的内容。@MikeD我没有您所谓的权威来源,但我见过数据库交互通常保存在一个类中:一个内容提供者,或者一个简单的包装器(如果开发人员希望自己的应用程序直接访问数据库)。该类是存储与数据库相关的所有内容的地方。例如,您的
CREATE
语句存储在
静态最终字符串
字段中,并在适当的时候使用。