Bagikan melalui


Sampel jenis data spasial

Unduh driver JDBC

Aplikasi sampel Microsoft JDBC Driver for SQL Server ini menunjukkan cara membuat, menyisipkan, dan mengambil jenis Data Spasial (Geometri dan Geografi).

File kode untuk sampel ini diberi nama SpatialDataTypes.java, dan dapat ditemukan di lokasi berikut:

\<installation directory>\sqljdbc_<version>\<language>\samples\datatypes

Persyaratan

Untuk menjalankan aplikasi sampel ini, Anda harus mengatur classpath untuk menyertakan file jar mssql-jdbc. Untuk informasi selengkapnya tentang cara mengatur classpath, lihat Menggunakan Driver JDBC.

Catatan

Driver Microsoft JDBC untuk SQL Server menyediakan file pustaka kelas mssql-jdbc untuk digunakan tergantung pada pengaturan Java Runtime Environment (JRE) pilihan Anda. Untuk informasi selengkapnya tentang file JAR mana yang akan dipilih, lihat Persyaratan Sistem untuk Driver JDBC.

Contoh

Dalam contoh berikut, kode sampel membuat tabel yang disebut SpatialDataTypesTable_JDBC_Sample yang berisi kolom 'Geometri' dan 'Geografi'.

Sampel pertama kali membuat objek 'Geometri' dan 'Geografi' dari Well-Known-Text (WKT) yang mewakili POINT. Ini menggunakan SQLServerPreparedStatement dengan kueri berparameter untuk memetakan data ke setiap kolom.

Terakhir, sampel menyisipkan data ke dalam tabel, dan mengambilnya. Data ditampilkan dalam bentuk 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)");
    }
}

Lihat juga

Bekerja dengan jenis data JDBC