Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
JDBC-stuurprogramma downloaden
Dit Microsoft JDBC-stuurprogramma voor sql Server-voorbeeldtoepassing laat zien hoe u ruimtelijke gegevenstypen (geometrie en geografie) maakt, invoegt en ophaalt.
Het codebestand voor dit voorbeeld heeft de naam SpatialDataTypes.java en is te vinden op de volgende locatie:
\<installation directory>\sqljdbc_<version>\<language>\samples\datatypes
Requirements
Als u deze voorbeeldtoepassing wilt uitvoeren, moet u het klassepad zo instellen dat het jar-bestand mssql-jdbc wordt opgenomen. Zie Het JDBC-stuurprogramma gebruiken voor meer informatie over het instellen van het klassepad.
Opmerking
Het Microsoft JDBC-stuurprogramma voor SQL Server biedt mssql-jdbc-klassebibliotheekbestanden aan die worden gebruikt afhankelijk van uw voorkeuren voor de Java Runtime Environment (JRE) instellingen. Zie Systeemvereisten voor het JDBC-stuurprogramma voor meer informatie over welk JAR-bestand u wilt kiezen.
Example
In het volgende voorbeeld maakt de voorbeeldcode een tabel met de naam SpatialDataTypesTable_JDBC_Sample die de kolommen Geometrie en Geografie bevat.
In het voorbeeld worden eerst objecten 'Geometrie' en 'Geografie' gemaakt op basis van een Well-Known-Text (WKT) die een PUNT vertegenwoordigen. Er wordt een SQLServerPreparedStatement met een geparameteriseerde query gebruikt om de gegevens toe te wijzen aan elke kolom.
Ten slotte voegt het voorbeeld de gegevens in de tabel in en haalt deze op. De gegevens worden weergegeven in de vorm van WKT.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import com.microsoft.sqlserver.jdbc.Geography;
import com.microsoft.sqlserver.jdbc.Geometry;
import com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement;
import com.microsoft.sqlserver.jdbc.SQLServerResultSet;
public class SpatialDataTypes {
private static String tableName = "SpatialDataTypesTable_JDBC_Sample";
public static void main(String[] args) {
// Create a variable for the connection string.
String connectionUrl = "jdbc:sqlserver://<server>:<port>;encrypt=true;databaseName=<database>;user=<user>;password=<password>";
// Establish the connection.
try (Connection con = DriverManager.getConnection(connectionUrl); Statement stmt = con.createStatement();) {
dropAndCreateTable(stmt);
// TODO: Implement Sample code
String geoWKT = "POINT(3 40 5 6)";
Geometry geomWKT = Geometry.STGeomFromText(geoWKT, 0);
Geography geogWKT = Geography.STGeomFromText(geoWKT, 4326);
try (SQLServerPreparedStatement pstmt = (SQLServerPreparedStatement) con
.prepareStatement("insert into " + tableName + " values (?, ?)");) {
pstmt.setGeometry(1, geomWKT);
pstmt.setGeography(2, geogWKT);
pstmt.execute();
SQLServerResultSet rs = (SQLServerResultSet) stmt.executeQuery("select * from " + tableName);
rs.next();
System.out.println("Geometry data: " + rs.getGeometry(1));
System.out.println("Geography data: " + rs.getGeography(2));
}
} catch (Exception e) {
e.printStackTrace();
}
}
private static void dropAndCreateTable(Statement stmt) throws SQLException {
stmt.executeUpdate("if object_id('" + tableName + "','U') is not null" + " drop table " + tableName);
stmt.executeUpdate("Create table " + tableName + " (c1 geometry, c2 geography)");
}
}