intellijのsqlite-databasesでspatialite関数を実行できるかどうかは誰にも分かりますか? spatialite関数のリファレンス:http://www.gaia-gis.it/gaia-sins/spatialite-sql-4.2.0.htmlIntellijでSqlite:Spatialite関数を実行する
特に、Point型の関数を使用することに興味があります。
ありがとうございます!
編集:関数は公式のspatialite-guiで動作しますが、プログラムでspatialite-guiを使用する方法はないと思いますか?ここで
は、私がこれまで試したものです:IntelliJので、私は、JavaのJDBCライブラリを接続していない成功を収めて関数ST_X(ポイント)とST_Y(ポイント)を使用してみました:
Connection c = null;
Class.forName("org.sqlite.JDBC");
c = DriverManager.getConnection("jdbc:sqlite:" + path + databaseName);
c.setAutoCommit(false);
System.out.println("Opened database \"" + databaseName + "\" successfully");
String sql = "SELECT id, ST_Y(point), ST_X(point) from tablename;";
Statement stmt = c.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String msg = "Id: ";
msg += rs.getInt(1);
msg += " , Latitude: ";
msg += rs.getDouble(2);
msg += " , Longitude: ";
msg += rs.getDouble(3);
System.out.println(msg);
}
rs.close();
stmt.close();
c.close();
これは、次の例外がスローされます。
Exception in thread "main" java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such function: ST_Y)
at org.sqlite.core.DB.newSQLException(DB.java:890)
at org.sqlite.core.DB.newSQLException(DB.java:901)
at org.sqlite.core.DB.throwex(DB.java:868)
at org.sqlite.core.NativeDB.prepare(Native Method)
at org.sqlite.core.DB.prepare(DB.java:211)
at org.sqlite.jdbc3.JDBC3Statement.executeQuery(JDBC3Statement.java:81)
at com.company.Test.main(Test.java:77)
編集2: 私は迷子になりました。それが機能するように拡張機能を読み込む必要があるようです。これはJDBCコネクターには含まれていませんか? (私はMavenを通してJDBCコネクターを引っ張った。) 正しい拡張はどこにありますか? それはそれらのものですか? https://www.gaia-gis.it/fossil/libspatialite/index それとも? http://www.gaia-gis.it/gaia-sins/index.html どうすれば使用できますか?誰もこれの前にこれをしましたか? Dynamically loading SpatiaLite as an extension module:あなたはあなたがここにドキュメントを見つけることができます
SELECT load_extension('mod_spatialite');
をやっspatialiteモジュールをロードする必要があり、空間クエリを実行する前に
ちょっと試してみましたか? – Fildor
これらのデータベース機能はありますか?他の機能と同じようにあなたを呼び止めるのは何ですか? –
IDEにはこれと何が関係していますか? –