package com.github.davidmoten.h2gis;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.h2gis.h2spatialext.CreateSpatialExtension;
import org.junit.Test;
/**
* Short demo of in memory spatial database.
*/
public class H2gisTest {
@Test
public void test() throws Exception {
Class.forName("org.h2.Driver");
// Open memory H2 table
try (Connection connection = DriverManager.getConnection(
"jdbc:h2:mem:syntax", "sa", "sa");
Statement st = connection.createStatement()) {
// Import spatial functions, domains and drivers
// If you are using a file database, you have to do only that
// once.
CreateSpatialExtension.initSpatialExtension(connection);
// Create a table
st.execute("CREATE TABLE ROADS (the_geom MULTILINESTRING, speed_limit INT)");
// Add some roads
st.execute("INSERT INTO ROADS VALUES ('MULTILINESTRING((15 5, 20 6, 25 7))', 80)");
st.execute("INSERT INTO ROADS VALUES ('MULTILINESTRING((20 6, 21 15, 21 25))', 50)");
// Compute the sum of roads length
try (ResultSet rs = st
.executeQuery("SELECT SUM(ST_LENGTH(the_geom)) total_length from ROADS")) {
if (rs.next()) {
System.out.println("Total length of roads: "
+ rs.getDouble("total_length") + " m");
}
}
}
}
}