LoginSignup
0
2

More than 5 years have passed since last update.

SpatiaLite を Java / JDBC で利用

Last updated at Posted at 2017-01-18

こんにちは。
SpatiaLite 使用例として、"Language bindings: Java / JDBC " (SpatiaLite Cookbook) を見つけたので、そのソースを動かしてみました(SpatialiteSample.java と SpatialiteThreads.java)。

準備として下記をインストールしました(homebrew 利用)。

$ brew install sqlite libspatialite
$ brew cask install java
$ wget https://bitbucket.org/xerial/sqlite-jdbc/downloads/sqlite-jdbc-3.16.1.jar

実行は、

$ javac -classpath ".:sqlite-jdbc-3.16.1.jar" SpatialiteSample.java
$ java -classpath ".:sqlite-jdbc-3.16.1.jar" SpatialiteSample
SQLite version: 3.16.1
SpatiaLite version: 4.3.0a
target CPU: x86_64-apple-darwin15.6.0
> Inserted 100000 entities of type POINT SRID=4326
> Inserted 100000 entities of type LINESTRING SRID=4326
> Inserted 100000 entities of type POLYGON SRID=4326
$ 
$ ls -ld spatialite-test.sqlite
$ javac -classpath ".:sqlite-jdbc-3.16.1.jar" SpatialiteThreads.java 
$ java -classpath ".:sqlite-jdbc-3.16.1.jar" SpatialiteThreads
start: Slot #0    Thread #0
start: Slot #2    Thread #2
start: Slot #1    Thread #1
...
    stop: Slot #25    Thread #991
    stop: Slot #19    Thread #997
    stop: Slot #57    Thread #1000
$ 

もしも sqlite + spatialite の動作に問題がある場合は、まずは下記のようにチェックすると良いようです。

$ SQLITE3_VERSION=`brew info sqlite | grep /usr/local/Cellar/sqlite | awk '{print $1}'`
$ SQLITE3=${SQLITE3_VERSION}/bin/sqlite3
$ echo $SQLITE3
$ $SQLITE3 -version
$ ( \
echo "SELECT load_extension('mod_spatialite');"  \
echo "SELECT sqlite_version();"  \
echo "SELECT spatialite_version();"  \
echo "SELECT spatialite_target_cpu();" \
) | $SQLITE3
$ 
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2