Class DriverWrapper
- All Implemented Interfaces:
Driver
This method currently works with J2EE DataSource implementations, and with DriverManager framework.
Simply replace the "jdbc:postgresql:" with a "jdbc:postgresql_postGIS:" in the jdbc URL.
When using the drivermanager, you need to initialize DriverWrapper instead of (or in addition to)
Driver. When using a J2EE DataSource implementation, set the driver class property in the
datasource config, the following works for jboss:
<driver-class>io.github.sebasbaumh.postgis.DriverWrapper</driver-class>
If you don't like or want to use the DriverWrapper, you can just call registerDataTypes(Connection)
on your Connection.
This wrapper always uses EWKB as representation, and thus works against PostGIS servers starting from 2.3.
original author Markus Schaber <[email protected]>
reworked by Sebastian Baumhekel
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanacceptsURL(String url) Check whether the driver thinks he can handle the given URL.connect(String url, Properties info) Creates a postgresql connection, and then adds the PostGIS data types to it calling addpgtypes()static voidregisterDataTypes(Connection conn) Registers all datatypes on the given connection, supports wrapped connections unlikeregisterDataTypes(PGConnection).static voidregisterDataTypes(org.postgresql.PGConnection pgconn) Registers all datatypes on the given connection.static voidRegisters all datatypes for binary transfer on the given connection, supports wrapped connections.Methods inherited from class org.postgresql.Driver
deregister, getMajorVersion, getMinorVersion, getPropertyInfo, getSharedTimer, getVersion, isRegistered, jdbcCompliant, notImplemented, parseURL, register
-
Field Details
-
POSTGIS_PROTOCOL
PostGIS custom JDBC protocol.- See Also:
-
POSTGRES_PROTOCOL
PostgreSQL JDBC protocol.- See Also:
-
-
Constructor Details
-
DriverWrapper
public DriverWrapper()Default constructor.
-
-
Method Details
-
registerDataTypes
Registers all datatypes on the given connection, supports wrapped connections unlikeregisterDataTypes(PGConnection).- Parameters:
conn-Connection- Throws:
SQLException- if theConnectionis neither anPGConnection, nor aConnectionwrapped around anPGConnection.
-
registerDataTypes
Registers all datatypes on the given connection.- Parameters:
pgconn-PGConnection- Throws:
SQLException
-
registerDataTypesForBinaryTransfer
Registers all datatypes for binary transfer on the given connection, supports wrapped connections.NOTE: this is experimental and only necessary until PostgreSQL JDBC driver is able to register types for binary transfer.
- Parameters:
conn-Connection- Throws:
SQLException- if theConnectionis noBaseConnection.
-
acceptsURL
Check whether the driver thinks he can handle the given URL.- Specified by:
acceptsURLin interfaceDriver- Overrides:
acceptsURLin classorg.postgresql.Driver- Parameters:
url- the URL of the driver- Returns:
- true if this driver accepts the given URL
- See Also:
-
connect
@Nullable public Connection connect(@Nonnull String url, @Nonnull Properties info) throws SQLException Creates a postgresql connection, and then adds the PostGIS data types to it calling addpgtypes()- Specified by:
connectin interfaceDriver- Overrides:
connectin classorg.postgresql.Driver- Parameters:
url- the URL of the database to connect toinfo- a list of arbitrary tag/value pairs as connection arguments- Returns:
- a connection to the URL or null if it isnt us
- Throws:
SQLException- if a database access error occurs- See Also:
-
getParentLogger
- Specified by:
getParentLoggerin interfaceDriver- Overrides:
getParentLoggerin classorg.postgresql.Driver
-