List of usage examples for org.apache.commons.dbutils DbUtils closeQuietly
public static void closeQuietly(Statement stmt)
Statement
, avoid closing if null and hide any SQLExceptions that occur. From source file:nl.b3p.catalog.arcgis.ArcSDE10JDBCHelper.java
@Override public String getAbsoluteDatasetName(ArcSDEJDBCDataset dataset) throws Exception { Connection c = getConnection(); try {/*from ww w . ja va 2 s. com*/ String sql = "select name from " + getTableName(TABLE_ITEMS) + " where objectid = ?"; String name = (String) new QueryRunner().query(c, sql, new ScalarHandler(), dataset.getObjectID()); if (dataset.getParent() != null) { String parentName = (String) new QueryRunner().query(c, sql, new ScalarHandler(), dataset.getParent().getObjectID()); name = parentName + Root.SEPARATOR + name; } return name; } finally { DbUtils.closeQuietly(c); } }
From source file:nl.b3p.catalog.arcgis.ArcSDE9xJDBCHelper.java
@Override public List<Dir> getFeatureDatasets(final String currentPath) throws NamingException, SQLException { Connection c = getConnection(); try {/*from ww w .j a v a 2 s .c o m*/ return new QueryRunner().query(c, "select databasename, owner, name from " + getTableName(TABLE_FEATUREDATASET), new ResultSetHandler<List<Dir>>() { public List<Dir> handle(ResultSet rs) throws SQLException { List<Dir> l = new ArrayList<Dir>(); while (rs.next()) { String fullName = ArcSDEJDBCDataset.constructFullName(rs.getString(1), rs.getString(2), rs.getString(3)); l.add(new Dir(fullName, currentPath + fullName)); } return l; } }); } finally { DbUtils.closeQuietly(c); } }
From source file:nl.b3p.catalog.arcgis.ArcSDE9xJDBCHelper.java
@Override public List<DirEntry> getFeatureClasses(final String currentPath, final ArcSDEJDBCDataset parent) throws NamingException, SQLException { Connection c = getConnection(); try {//from w ww .jav a2s .c o m ResultSetHandler<List<DirEntry>> h = new ResultSetHandler<List<DirEntry>>() { public List<DirEntry> handle(ResultSet rs) throws SQLException { List<DirEntry> l = new ArrayList<DirEntry>(); while (rs.next()) { String fullName = ArcSDEJDBCDataset.constructFullName(rs.getString(1), rs.getString(2), rs.getString(3)); l.add(new DirEntry(fullName, currentPath + fullName)); } return l; } }; String sql = "select oc.databasename, oc.owner, oc.name from " + getTableName(TABLE_OBJECTCLASSES) + " oc "; if (parent == null) { sql += "where datasetid is null or datasetid not in (select id from " + getTableName(TABLE_FEATUREDATASET) + ")"; } else { sql += "join " + getTableName(TABLE_FEATUREDATASET) + " ds on (ds.id = oc.datasetid) where ds.owner = ? and ds.name = ?"; sql += databaseNameSQL(parent, "ds"); } List<DirEntry> l; if (parent != null) { if (parent.getDatabaseName() != null) { l = new QueryRunner().query(c, sql, h, parent.getOwner(), parent.getName(), parent.getDatabaseName()); } else { l = new QueryRunner().query(c, sql, h, parent.getOwner(), parent.getName()); } } else { l = new QueryRunner().query(c, sql, h); } return l; } finally { DbUtils.closeQuietly(c); } }
From source file:nl.b3p.catalog.arcgis.ArcSDE9xJDBCHelper.java
@Override public String getMetadata(ArcSDEJDBCDataset dataset) throws NamingException, SQLException, IOException { Connection c = getConnection(); try {/* w w w . ja v a 2s. co m*/ String sql = "select xml from " + getTableName(TABLE_USERMETADATA) + " where name = ? and owner = ?"; sql += databaseNameSQL(dataset); ResultSetHandler<String> h = new ResultSetHandler<String>() { public String handle(ResultSet rs) throws SQLException { String xml = DocumentHelper.EMPTY_METADATA; if (rs.next()) { try { xml = IOUtils.toString(rs.getBinaryStream(1), ENCODING); } catch (IOException ex) { throw new RuntimeException(ex); } } return xml; } }; if (dataset.getDatabaseName() != null) { return new QueryRunner().query(c, sql, h, dataset.getName(), dataset.getOwner(), dataset.getDatabaseName()); } else { return new QueryRunner().query(c, sql, h, dataset.getName(), dataset.getOwner()); } } finally { DbUtils.closeQuietly(c); } }
From source file:nl.b3p.catalog.arcgis.ArcSDE9xJDBCHelper.java
@Override public void saveMetadata(ArcSDEJDBCDataset dataset, String metadata) throws Exception { Connection c = getConnection(); PreparedStatement ps = null;// w ww . j a va2 s .c o m try { c.setAutoCommit(false); // gebruik geen DbUtils; setBinaryStream() werkt niet met setObject() // welke DbUtils gebruikt String sql = "update " + getTableName(TABLE_USERMETADATA) + " set xml = ? where name = ? and owner = ?"; sql += databaseNameSQL(dataset); ps = c.prepareStatement(sql); byte[] xml = metadata.getBytes(ENCODING); ps.setBinaryStream(1, new ByteArrayInputStream(xml), xml.length); ps.setString(2, dataset.getName()); ps.setString(3, dataset.getOwner()); if (dataset.getDatabaseName() != null) { ps.setString(4, dataset.getDatabaseName()); } int rowsAffected = ps.executeUpdate(); ps.close(); ps = null; if (rowsAffected > 1) { throw new Exception("Updating metadata should affect maximum one row; got rows affected count of " + rowsAffected); } if (rowsAffected == 0) { // try to insert new row QueryRunner runner = new QueryRunner(); // determine highest id Object id = runner.query(c, "select coalesce(max(id)+1,1) from " + getTableName(TABLE_USERMETADATA), new ScalarHandler()); Integer datasetType = determineDatasetType(c, dataset); // weer setBinaryStream nodig ps = c.prepareStatement("insert into " + getTableName(TABLE_USERMETADATA) + " (id, databasename, owner, name, datasettype, xml) values(?,?,?,?,?,?)"); ps.setObject(1, id); ps.setObject(2, dataset.getDatabaseName()); ps.setString(3, dataset.getOwner()); ps.setString(4, dataset.getName()); ps.setObject(5, datasetType); ps.setBinaryStream(6, new ByteArrayInputStream(xml), xml.length); ps.executeUpdate(); ps.close(); ps = null; } DbUtils.commitAndClose(c); } catch (Exception e) { DbUtils.rollbackAndCloseQuietly(c); throw e; } finally { DbUtils.closeQuietly(ps); } }
From source file:nl.b3p.catalog.kaartenbalie.KbJDBCHelper.java
public List<Dir> getFeatureDatasets(final String currentPath, String type) throws Exception { Connection c = getConnection(); try {//from ww w . j ava 2 s. c o m String sql = ""; if ("WMS".equals(type)) { sql = "select id, abbr from service_provider "; } else if ("WFS".equals(type)) { sql = "select id, abbr from wfs_service_provider "; } else { List<Dir> dirs = new ArrayList<Dir>(); Dir d = new Dir("", currentPath + "?"); dirs.add(d); return dirs; } ResultSetHandler<List<Dir>> h = new ResultSetHandler<List<Dir>>() { public List<Dir> handle(ResultSet rs) throws SQLException { List<Dir> dirs = new ArrayList<Dir>(); while (rs.next()) { Dir d = new Dir(rs.getString(2), currentPath + rs.getInt(1)); dirs.add(d); } return dirs; } }; return new QueryRunner().query(c, sql, h); } finally { DbUtils.closeQuietly(c); } }
From source file:nl.b3p.catalog.kaartenbalie.KbJDBCHelper.java
public List<DirEntry> getFeatureClasses(final String fullPath) throws Exception { String path = Root.getPathPart(fullPath); // path = WMS/391 String paths[] = path.split(Pattern.quote(Root.SEPARATOR + "")); String service = ""; String sp_id = ""; if (paths.length == 2) { service = paths[0];//from w w w. j av a 2 s . com sp_id = paths[1]; } else { List<DirEntry> l = new ArrayList<DirEntry>(); DirEntry de = new DirEntry("", fullPath + "?"); l.add(de); return l; } Connection c = getConnection(); try { String sql = ""; if ("WMS".equals(service)) { sql = "select layer.id, layer.name, service_provider.abbr from layer " + "join service_provider on (layer.service_provider = service_provider.id) " + "where layer.name is not null and service_provider.id = ? "; } else if ("WFS".equals(service)) { sql = "select wfs_layer.id, wfs_layer.name, wfs_service_provider.abbr from wfs_layer " + "join wfs_service_provider on (wfs_layer.wfs_service_provider = wfs_service_provider.id) " + "where wfs_layer.name is not null and wfs_service_provider.id = ? "; } else { List<DirEntry> l = new ArrayList<DirEntry>(); DirEntry de = new DirEntry("", fullPath + "?"); l.add(de); return l; } ResultSetHandler<List<DirEntry>> h = new ResultSetHandler<List<DirEntry>>() { public List<DirEntry> handle(ResultSet rs) throws SQLException { List<DirEntry> l = new ArrayList<DirEntry>(); while (rs.next()) { DirEntry de = new DirEntry(rs.getString(2), fullPath + rs.getInt(1)); de.setIsGeo(true); l.add(de); } return l; } }; return new QueryRunner().query(c, sql, h, new Integer(sp_id)); } finally { DbUtils.closeQuietly(c); } }
From source file:nl.b3p.catalog.kaartenbalie.KbJDBCHelper.java
private String getMetadataOrNull(String currentPath) throws Exception { String path = Root.getPathPart(currentPath); // path = WMS/391/6356 String paths[] = path.split(Pattern.quote(Root.SEPARATOR + "")); String service = ""; String sp_id = ""; String layer_id = ""; if (paths.length == 3) { service = paths[0];/*from ww w.ja v a 2s. c o m*/ sp_id = paths[1]; layer_id = paths[2]; } else { return null; } Connection c = getConnection(); try { if ("WMS".equals(service)) { String sql = "select metadata from layer_metadata where layer = ?"; return (String) new QueryRunner().query(c, sql, new ScalarHandler(), new Integer(layer_id)); } else if ("WFS".equals(service)) { // nothing for now String sql = "select metadata from wfs_layer_metadata where layer = ?"; throw new Exception("WFS get metadata not supported!"); // return (String) new QueryRunner().query(c, sql, new ScalarHandler(), new Integer(layer_id)); } } finally { DbUtils.closeQuietly(c); } return null; }
From source file:nl.b3p.catalog.kaartenbalie.KbJDBCHelper.java
private void updateMetadata(String service, String layer_id, String metadata) throws Exception { Connection c = getConnection(); PreparedStatement ps = null;//from w w w .ja va 2 s. c o m try { // Sloop encoding uit XML declaratie, anders geeft MSSQL error // "unable to switch the encoding" op column type xml Document doc = DocumentHelper.getMetadataDocument(metadata); metadata = new XMLOutputter(Format.getPrettyFormat().setOmitEncoding(true)).outputString(doc); String sql = ""; if ("WMS".equals(service)) { sql = "update layer_metadata set metadata = ? where layer = ?"; } else if ("WFS".equals(service)) { // nothing for now sql = "update wfs_layer_metadata set metadata = ? where layer = ?"; throw new Exception("WFS metadata update not supported!"); } ps = c.prepareStatement(sql); ps.setString(1, metadata); ps.setInt(2, new Integer(layer_id)); int rowsAffected = ps.executeUpdate(); if (rowsAffected != 1) { throw new Exception("Updating metadata should affect maximum one row; got rows affected count of " + rowsAffected); } } finally { DbUtils.closeQuietly(ps); DbUtils.closeQuietly(c); } }
From source file:nl.b3p.catalog.kaartenbalie.KbJDBCHelper.java
private void insertMetadata(String service, String layer_id, String metadata) throws Exception { Connection c = getConnection(); PreparedStatement ps = null;//from ww w . ja v a2 s. co m try { // Sloop encoding uit XML declaratie, anders geeft MSSQL error // "unable to switch the encoding" op column type xml Document doc = DocumentHelper.getMetadataDocument(metadata); metadata = new XMLOutputter(Format.getPrettyFormat().setOmitEncoding(true)).outputString(doc); String sql = ""; if ("WMS".equals(service)) { sql = "insert into layer_metadata (layer, metadata) values (?, ?) "; } else if ("WFS".equals(service)) { // nothing for now sql = "insert into wfs_layer_metadata (layer, metadata) values (?, ?) "; throw new Exception("WFS metadata insert not supported!"); } ps = c.prepareStatement(sql); ps.setString(2, metadata); ps.setInt(1, new Integer(layer_id)); int rowsAffected = ps.executeUpdate(); if (rowsAffected != 1) { throw new Exception("Inserting metadata should affect maximum one row; got rows affected count of " + rowsAffected); } } finally { DbUtils.closeQuietly(ps); DbUtils.closeQuietly(c); } }