Search in sources :

Example 6 with JdbcConnection

use of com.revolsys.jdbc.JdbcConnection in project com.revolsys.open by revolsys.

the class PostgreSQLRecordStore method getJdbcConnection.

@Override
public JdbcConnection getJdbcConnection(final boolean autoCommit) {
    final DataSource dataSource = getDataSource();
    final Connection connection = JdbcUtils.getConnection(dataSource);
    try {
        final PgConnection pgConnection = connection.unwrap(PgConnection.class);
        pgConnection.addDataType("geometry", PostgreSQLGeometryWrapper.class);
        pgConnection.addDataType("box2d", PostgreSQLBoundingBoxWrapper.class);
        pgConnection.addDataType("box3d", PostgreSQLBoundingBoxWrapper.class);
        pgConnection.addDataType("tid", PostgreSQLTidWrapper.class);
    } catch (final SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return new JdbcConnection(connection, dataSource, autoCommit);
}
Also used : SQLException(java.sql.SQLException) Connection(java.sql.Connection) JdbcConnection(com.revolsys.jdbc.JdbcConnection) PgConnection(org.postgresql.jdbc.PgConnection) PgConnection(org.postgresql.jdbc.PgConnection) JdbcConnection(com.revolsys.jdbc.JdbcConnection) DataSource(javax.sql.DataSource)

Example 7 with JdbcConnection

use of com.revolsys.jdbc.JdbcConnection in project com.revolsys.open by revolsys.

the class GeoPackageRecordStore method initializeDo.

@Override
@PostConstruct
public void initializeDo() {
    super.initializeDo();
    setUsesSchema(false);
    final String filter = "WHERE NOT (NAME LIKE 'GPKG%' OR NAME LIKE 'RTREE%' OR NAME LIKE 'SQLITE%')";
    setSchemaTablePermissionsSql("select  '/' \"SCHEMA_NAME\", name \"TABLE_NAME\", 'ALL' \"PRIVILEGE\", '' \"REMARKS\"  from sqlite_master " + filter + " union all " + "select  '/' \"SCHEMA_NAME\", name \"TABLE_NAME\", 'ALL' \"PRIVILEGE\", '' \"REMARKS\"  from sqlite_temp_master " + filter);
    addFieldAdder("BOOLEAN", DataTypes.BOOLEAN);
    addFieldAdder("TINYINT", DataTypes.BYTE);
    addFieldAdder("SMALLINT", DataTypes.SHORT);
    addFieldAdder("MEDIUMINT", DataTypes.INT);
    addFieldAdder("INT", DataTypes.LONG);
    addFieldAdder("BIG_INTEGER", DataTypes.LONG);
    addFieldAdder("FLOAT", DataTypes.FLOAT);
    addFieldAdder("DOUBLE", DataTypes.DOUBLE);
    addFieldAdder("REAL", DataTypes.DOUBLE);
    addFieldAdder("TEXT", DataTypes.STRING);
    addFieldAdder("BLOB", DataTypes.BLOB);
    addFieldAdder("DATE", DataTypes.SQL_DATE);
    addFieldAdder("DATETIME", DataTypes.DATE_TIME);
    final GeoPackageGeometryFieldAdder geometryAdder = new GeoPackageGeometryFieldAdder();
    addFieldAdder("GEOMETRY", geometryAdder);
    addFieldAdder("POINT", geometryAdder);
    addFieldAdder("LINESTRING", geometryAdder);
    addFieldAdder("POLYGON", geometryAdder);
    addFieldAdder("GEOMETRYCOLLECTION", geometryAdder);
    addFieldAdder("MULTIPOINT", geometryAdder);
    addFieldAdder("MULTILINESTRING", geometryAdder);
    addFieldAdder("MULTIPOLYGON", geometryAdder);
    super.initialize();
    try (JdbcConnection connection = getJdbcConnection(true)) {
        final CoreConnection sqliteConnection = (CoreConnection) ((DelegatingConnection<?>) connection.getConnection()).getInnermostDelegate();
        final DB db = sqliteConnection.db();
        db.enable_load_extension(true);
        try {
            db._exec("select load_extension('libgpkg')");
        } finally {
            db.enable_load_extension(false);
        }
    } catch (final SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
Also used : CoreConnection(org.sqlite.core.CoreConnection) SQLException(java.sql.SQLException) JdbcConnection(com.revolsys.jdbc.JdbcConnection) DB(org.sqlite.core.DB) PostConstruct(javax.annotation.PostConstruct)

Aggregations

JdbcConnection (com.revolsys.jdbc.JdbcConnection)7 SQLException (java.sql.SQLException)7 PreparedStatement (java.sql.PreparedStatement)5 ResultSet (java.sql.ResultSet)4 RecordDefinition (com.revolsys.record.schema.RecordDefinition)3 JdbcRecordStore (com.revolsys.jdbc.io.JdbcRecordStore)2 Record (com.revolsys.record.Record)2 FieldDefinition (com.revolsys.record.schema.FieldDefinition)2 ArrayList (java.util.ArrayList)2 DataType (com.revolsys.datatype.DataType)1 GeometryFactory (com.revolsys.geometry.model.GeometryFactory)1 PathName (com.revolsys.io.PathName)1 RecordFactory (com.revolsys.record.RecordFactory)1 Query (com.revolsys.record.query.Query)1 Transaction (com.revolsys.transaction.Transaction)1 Connection (java.sql.Connection)1 PostConstruct (javax.annotation.PostConstruct)1 DataSource (javax.sql.DataSource)1 PgConnection (org.postgresql.jdbc.PgConnection)1 CoreConnection (org.sqlite.core.CoreConnection)1