Example usage for org.apache.commons.dbutils DbUtils closeQuietly

List of usage examples for org.apache.commons.dbutils DbUtils closeQuietly

Introduction

In this page you can find the example usage for org.apache.commons.dbutils DbUtils closeQuietly.

Prototype

public static void closeQuietly(Statement stmt) 

Source Link

Document

Close a Statement, avoid closing if null and hide any SQLExceptions that occur.

Usage

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);
    }
}