0

具体的には、次のステートメントを実行します。

    String script = String.format(
      "CREATE CACHED TABLE IF NOT EXISTS %s (id VARCHAR(36), value %s, PRIMARY KEY (id));", indexName, getIndexType());
    st.execute(script);
    script = String.format("CREATE INDEX idx_%s ON %s (value);", indexName, indexName);
    st.execute(script);

1つの実行コマンドでそれができるかどうか疑問に思いましたか?私が試したのは、2つの文字列を連結して実行することです。しかし、hsqldbは、インデックスが作成されているテーブルが存在しないと文句を言います。

4

1 に答える 1

1

HSQLDBのドキュメントでは、テーブルの作成中にテーブルインデックスを指定する方法が提供されていないため、データベースに対して2つの個別の呼び出しを行う必要があります。

余談ですが、PreparedStatementSQLインジェクション攻撃を再び保護するために使用することをお勧めします。プレースホルダーを使用すると、を使用する必要がなくなりますString.format

于 2013-03-24T05:10:36.520 に答える