Example usage for org.apache.commons.dbutils.handlers MapListHandler MapListHandler

List of usage examples for org.apache.commons.dbutils.handlers MapListHandler MapListHandler

Introduction

In this page you can find the example usage for org.apache.commons.dbutils.handlers MapListHandler MapListHandler.

Prototype

public MapListHandler(RowProcessor convert) 

Source Link

Document

Creates a new instance of MapListHandler.

Usage

From source file:velo.adapters.JdbcAdapter.java

public void runQuery(Query queryManager) throws AdapterException {
    //try {/*from  ww  w .j a v a2  s. c o  m*/
    //currently does nothing
    //query.buildQuery();

    log.debug("Execution of JdbcAdapter->runQuery() method started...");
    //logger.info("Executing Query: " + query.getQueryString() + ", of type: " + query.getActionType());

    //System.out.println("Query ACTION TYPE CLASS: " + query.getActionType().getClass().getName());
    //System.out.println("ACTIONOPTIONS.INSERT TYPE CLASS: " + ActionOptions.INSERT.getClass().getName());

    List lMap = null;
    for (SingleQuery currSQ : queryManager.getQueries()) {
        switch (currSQ.getQueryType()) {
        case INSERT:
        case UPDATE:
            log.debug("An Insert/Update query type is being executed...");
            try {
                //logger.info("Jdbc query execution for 'INSERT'/'UPDATE' action type STARTED.");

                log.debug("Executing query, please wait...");

                //for (SingleQuery currSQ : queryManager.getQueries()) {
                //Statement st = getJdbcConnection().createStatement();
                //                        Statement st = factoryStatement();
                PreparedStatement stmt = currSQ.factoryPreparedStatement(getJdbcConnection());

                log.trace("Executing query against the system...");
                //qRunner.update(getJdbcConnection(), query.getQueryString());
                //st.executeQuery(query.getQueryString());

                //Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement.
                stmt.executeUpdate();

                //logger.info("Jdbc query execution for 'INSERT' action type ENDED.");
                log.debug("Successfully finished executing an 'Update/Insert' query!");

                //Close the statement
                stmt.close();
                //                    }
            } catch (SQLException e) {
                //logger.warning("Unable to INSERT record, failed with message: " + e.getMessage());
                throw new AdapterException("Unable to INSERT record, failed with message: " + e.getMessage());
            }
            break;
        case SELECT:
            try {
                log.debug("Jdbc query execution for 'SELECT' action type STARTED.");
                //qRunner = new QueryRunner();
                //List lMap = (List)qRunner.query(getJdbcConnection(),query.getQueryString(), new MapListHandler());

                //Statement st = getJdbcConnection().createStatement();
                //                    Statement st = factoryStatement();
                PreparedStatement stmt = currSQ.factoryPreparedStatement(getJdbcConnection());
                log.debug("Executing query...");
                ResultSet rs = (ResultSet) stmt.executeQuery();

                rs = StringTrimmedResultSet.wrap(rs);
                MapListHandler mlh = new MapListHandler(new VeloDbUtilsRowProcessor());

                if (lMap == null) {
                    lMap = (List) mlh.handle(rs);
                } else {
                    lMap.addAll((List) mlh.handle(rs));
                }

                /*
                try {
                        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("/sniffit.txt"), "UTF-8"));
                         
                        for (int i = 0; i < lMap.size(); i++) {
                                Map currCol = (Map) lMap.get(i);
                                System.out.println(currCol);
                                String firstName = (String) currCol.get("firstName");
                                String lastName = (String) currCol.get("lastName");
                         
                                System.out.println("FirstName: " + firstName);
                                System.out.println("LastName: " + lastName);
                                writer.write(firstName + "\n\n" + lastName);
                        }
                        writer.close();
                         
                         
                }
                catch (FileNotFoundException fnfe) {
                        fnfe.printStackTrace();
                }
                catch (UnsupportedEncodingException uee) {
                        uee.printStackTrace();
                }
                catch (IOException ioe) {
                        ioe.printStackTrace();
                }
                 */

                //   Set the result to the adapter
                setResult(lMap);
                //logger.info("Jdbc query execution for 'SELECT' action type ENDED.");
                //Return success

                //Close the statement
                stmt.close();
                log.debug("Successfully finished executing a -SELECT- query!");
            } catch (SQLException e) {
                //logger.warning("Unable to INSERT/UPDATE record" + e.getMessage());
                throw new AdapterException("Unable to INSERT/UPDATE record" + e.getMessage());
            }
            //Debugging
            //
            // Iterator mapIterator = lMap.iterator();
            // while (mapIterator.hasNext()) {
            // System.out.println(mapIterator.next());
            // }
            break;
        case DELETE:
            try {
                log.debug("A Delete query type is being executed...");
                //logger.info("Jdbc query execution for 'DELETE' action type STARTED.");
                //Statement st = getJdbcConnection().createStatement();
                //st.setQueryTimeout(getQueryTimeout());
                //qRunner.update(getJdbcConnection(), query.getQueryString());
                //st.execute(query.getQueryString());
                //                    for (String queryString : query.getQueries()) {
                log.debug("Executing query...");
                PreparedStatement stmt = currSQ.factoryPreparedStatement(getJdbcConnection());

                //                        Statement st = factoryStatement();
                //Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement.
                //                        st.executeUpdate(queryString);
                stmt.executeUpdate();
                //qRunner.update(getJdbcConnection(), query.getQueryString());
                //logger.info("Jdbc query execution for 'DELETE' action type ENDED.");
                //Return failure
                //Close the statement
                stmt.close();
                log.debug("Successfully finished executing a -DELETE- query!");
            } catch (SQLException e) {
                //logger.warning("Unable to DELETE record: " + e.getMessage());
                throw new AdapterException("Unable to DELETE record: " + e.getMessage());
            }
            break;
        default:
            throw new AdapterException("Jdbc query execution FAILED, must set Action type before execution!");
        }
    }
}