Spatialite-Androidのチュートリアルを見ていると、次のコード サンプルに気付きました。
String query = "SELECT AsText(Transform(MakePoint(" + TEST_LON + ", " + TEST_LAT + ", 4326), 32632));";
sb.append("Execute query: ").append(query).append("\n");
try {
Stmt stmt = db.prepare(query);
if (stmt.step()) {
String pointStr = stmt.column_string(0);
sb.append("\t").append(TEST_LON + "/" + TEST_LAT + "/EPSG:4326").append(" = ")//
.append(pointStr + "/EPSG:32632").append("...\n");
}
stmt.close();
} catch (Exception e) {
e.printStackTrace();
sb.append(ERROR).append(e.getLocalizedMessage()).append("\n");
}
特に、Android SQLite ライブラリで使用されているような、より適切な方法ではなく、単純に SQL クエリをつなぎ合わせるという不適切な方法が行われていることに気付きました。Spatialite に真の準備済みステートメントを使用させる方法はありますか?
明確にするために、Android の標準 SQLite データベースを使用して、次のようなものを探しています。
String query="SELECT * FROM table WHERE _id=?";
Cursor data=db.rawQuery(query,new String[]{id});