Refine search
@Override public Object getLastAutoGeneratedValue( String schemaName, String tableName, String columnName, Connection cx) throws SQLException { Statement st = cx.createStatement(); try { ResultSet rs = st.executeQuery("SELECT last_insert_rowid()"); try { if (rs.next()) { return rs.getInt(1); } } finally { dataStore.closeSafe(rs); } } finally { dataStore.closeSafe(st); } return null; }
public void onBorrow(JDBCDataStore store, Connection cx) throws SQLException { if (sqlOnBorrow != null && !"".equals(sqlOnBorrow)) { String command = sqlOnBorrow.evaluate(null, String.class); Statement st = null; try { st = cx.createStatement(); st.execute(command); } finally { store.closeSafe(st); } } }
public void onRelease(JDBCDataStore store, Connection cx) throws SQLException { if (sqlOnRelease != null) { String command = sqlOnRelease.evaluate(null, String.class); Statement st = null; try { st = cx.createStatement(); st.execute(command); } finally { store.closeSafe(st); } } }
ResultSet rs = null; try { st = cx.createStatement(); String sql = "SELECT * FROM MDSYS.USER_SDO_INDEX_METADATA WHERE ROWNUM < 2"; LOGGER.log(Level.FINE, "Check user can access user metadata views: {0}", sql); rs = st.executeQuery(sql); dataStore.closeSafe(rs); LOGGER.log(Level.FINE, sql); rs = st.executeQuery(sql); dataStore.closeSafe(rs); canAccessUserViews = false; } finally { dataStore.closeSafe(st); dataStore.closeSafe(rs);
@Override public Object getLastAutoGeneratedValue( String schemaName, String tableName, String columnName, Connection cx) throws SQLException { Statement st = cx.createStatement(); try { String sql = "SELECT last_insert_id()"; dataStore.getLogger().fine(sql); ResultSet rs = st.executeQuery(sql); try { if (rs.next()) { return rs.getLong(1); } } finally { dataStore.closeSafe(rs); } } finally { dataStore.closeSafe(st); } return null; }
/** * Returns the PostGIS version * * @return */ public Version getVersion(Connection conn) throws SQLException { if (version == null) { Statement st = null; ResultSet rs = null; try { st = conn.createStatement(); rs = st.executeQuery("select PostGIS_Lib_Version()"); if (rs.next()) { version = new Version(rs.getString(1)); } } finally { dataStore.closeSafe(rs); dataStore.closeSafe(st); } } return version; }
@Override public Object getNextSequenceValue(String schemaName, String sequenceName, Connection cx) throws SQLException { Statement st = cx.createStatement(); try { ResultSet rs = st.executeQuery( "SELECT " + encodeNextSequenceValue(schemaName, sequenceName) + " FROM DUAL"); try { if (!rs.next()) { throw new SQLException("Could not find next sequence value"); } return rs.getInt(1); } finally { dataStore.closeSafe(rs); } } finally { dataStore.closeSafe(st); } }
@Override public Object getNextSequenceValue(String schemaName, String sequenceName, Connection cx) throws SQLException { StringBuilder sql = new StringBuilder("SELECT "); sql.append(encodeNextSequenceValue(schemaName, sequenceName)); sql.append(" from sysibm.sysdummy1"); Statement st = cx.createStatement(); try { ResultSet rs = st.executeQuery(sql.toString()); try { if (!rs.next()) { throw new SQLException("Could not get next value for sequence"); } return rs.getInt(1); } finally { dataStore.closeSafe(rs); } } finally { dataStore.closeSafe(st); } }
@Override public String getSequenceForColumn( String schemaName, String tableName, String columnName, Connection cx) throws SQLException { // TODO, hard stuff String sequenceName = tableName + "_" + columnName + "_SEQUENCE"; StringBuffer sql = new StringBuffer("SELECT SEQNAME FROM SYSCAT.SEQUENCES WHERE "); if (schemaName != null) { sql.append("SEQSCHEMA ='"); sql.append(schemaName); sql.append("' AND "); } sql.append("SEQNAME = '"); sql.append(sequenceName); sql.append("'"); Statement st = cx.createStatement(); try { ResultSet rs = st.executeQuery(sql.toString()); try { if (rs.next()) { return sequenceName; } } finally { dataStore.closeSafe(rs); } } finally { dataStore.closeSafe(st); } return null; }
@Override public Object getNextSequenceValue(String schemaName, String sequenceName, Connection cx) throws SQLException { Statement st = cx.createStatement(); try { String sql = "SELECT " + encodeNextSequenceValue(schemaName, sequenceName); dataStore.getLogger().fine(sql); ResultSet rs = st.executeQuery(sql); try { if (rs.next()) { return rs.getLong(1); } } finally { dataStore.closeSafe(rs); } } finally { dataStore.closeSafe(st); } return null; }
@Override public String getSequenceForColumn( String schemaName, String tableName, String columnName, Connection cx) throws SQLException { Statement st = cx.createStatement(); try { // pg_get_serial_sequence oddity: table name needs to be // escaped with "", whilst column name, doesn't... String sql = "SELECT pg_get_serial_sequence('\""; if (schemaName != null && !"".equals(schemaName)) sql += schemaName + "\".\""; sql += tableName + "\"', '" + columnName + "')"; dataStore.getLogger().fine(sql); ResultSet rs = st.executeQuery(sql); try { if (rs.next()) { return rs.getString(1); } } finally { dataStore.closeSafe(rs); } } finally { dataStore.closeSafe(st); } return null; }
@Override public boolean includeTable(String schemaName, String tableName, Connection cx) throws SQLException { Statement st = cx.createStatement(); try { ResultSet rs = st.executeQuery( String.format( "SELECT * FROM gpkg_contents WHERE" + " table_name = '%s' AND data_type = '%s'", tableName, DataType.Feature.value())); try { return rs.next(); } finally { rs.close(); } } finally { dataStore.closeSafe(st); } }
@Override public Object getNextSequenceValue(String schemaName, String sequenceName, Connection cx) throws SQLException { Statement st = cx.createStatement(); try { String sql = "SELECT " + encodeNextSequenceValue(schemaName, sequenceName); dataStore.getLogger().fine(sql); ResultSet rs = st.executeQuery(sql); try { if (!rs.next()) { throw new SQLException("Could not find a next value for sequence"); } return rs.getInt(1); } finally { dataStore.closeSafe(rs); } } finally { dataStore.closeSafe(st); } }
@Override public String getSequenceForColumn( String schemaName, String tableName, String columnName, Connection cx) throws SQLException { String sequenceName = tableName + "_" + columnName + "_SEQUENCE"; // sequence names have to be upper case to select values from them sequenceName = sequenceName.toUpperCase(); Statement st = cx.createStatement(); try { StringBuffer sql = new StringBuffer(); sql.append("SELECT * FROM INFORMATION_SCHEMA.SEQUENCES "); sql.append("WHERE SEQUENCE_NAME = '").append(sequenceName).append("'"); dataStore.getLogger().fine(sql.toString()); ResultSet rs = st.executeQuery(sql.toString()); try { if (rs.next()) { return sequenceName; } } finally { dataStore.closeSafe(rs); } } finally { dataStore.closeSafe(st); } return null; }
statement = cx.createStatement(); result = statement.executeQuery(sqlStatement); dataStore.closeSafe(result); dataStore.closeSafe(statement);
LOGGER.fine(sql); Statement st = cx.createStatement(); try { ResultSet rs = st.executeQuery(sql); dataStore.closeSafe(rs); dataStore.closeSafe(st);
@Override public void postDropTable(String schemaName, SimpleFeatureType featureType, Connection cx) throws SQLException { Statement st = cx.createStatement(); String tableName = featureType.getTypeName(); try { // remove all the geometry_column entries String sql = "DELETE FROM GEOMETRY_COLUMNS" + " WHERE f_table_catalog=''" // + " AND f_table_schema = '" + schemaName + "'" + " AND f_table_name = '" + tableName + "'"; LOGGER.fine(sql); st.execute(sql); } finally { dataStore.closeSafe(st); } }
@Override public Object getLastAutoGeneratedValue( String schemaName, String tableName, String columnName, Connection cx) throws SQLException { Statement st = cx.createStatement(); try { // Retrieve the sequence of the column String sequenceName = getSequenceForColumn(schemaName, tableName, columnName, cx); if (sequenceName == null) { // There is no sequence to get the value from return null; } String sql = "SELECT currval('" + sequenceName + "')"; dataStore.getLogger().fine(sql); ResultSet rs = st.executeQuery(sql); try { if (rs.next()) { return rs.getLong(1); } } finally { dataStore.closeSafe(rs); } } finally { dataStore.closeSafe(st); } return null; }
throws SQLException { Statement st = cx.createStatement(); try { sequence = string.substring(string.indexOf("SYSTEM_SEQUENCE"), string.length() - 1); } finally { dataStore.closeSafe(rs); dataStore.closeSafe(rs); dataStore.closeSafe(st);
public CoordinateReferenceSystem createCRS(int srid, Connection cx) throws SQLException { try { return CRS.decode("EPSG:" + srid, true); } catch (Exception e) { LOGGER.log(Level.FINE, "Unable to create CRS from epsg code " + srid, e); // try looking up in spatial ref sys String sql = String.format( "SELECT definition FROM %s WHERE auth_srid = %d", SPATIAL_REF_SYS, srid); LOGGER.fine(sql); Statement st = cx.createStatement(); ResultSet rs = st.executeQuery(sql); try { if (rs.next()) { String wkt = rs.getString(1); try { return CRS.parseWKT(wkt); } catch (Exception e2) { LOGGER.log(Level.FINE, "Unable to create CRS from wkt: " + wkt, e2); } } } finally { dataStore.closeSafe(rs); dataStore.closeSafe(st); } } return super.createCRS(srid, cx); }