Package com.googlecode.psiprobe.model.sql

Examples of com.googlecode.psiprobe.model.sql.DataSourceTestInfo


        int historySize = ServletRequestUtils.getIntParameter(request, "historySize", 0);

        // store current option values and query history in a session attribute

        HttpSession sess = request.getSession();
        DataSourceTestInfo sessData = (DataSourceTestInfo) sess.getAttribute(DataSourceTestInfo.DS_TEST_SESS_ATTR);

        synchronized(sess) {
            if (sessData == null) {
                sessData = new DataSourceTestInfo();
                sess.setAttribute(DataSourceTestInfo.DS_TEST_SESS_ATTR, sessData);
            }

            sessData.setMaxRows(maxRows);
            sessData.setRowsPerPage(rowsPerPage);
            sessData.setHistorySize(historySize);
            sessData.addQueryToHistory(sql);
        }

        DataSource dataSource = null;

        try {
            dataSource = getContainerWrapper().getResourceResolver().lookupDataSource(context, resourceName);
        } catch (NamingException e) {
            request.setAttribute("errorMessage", getMessageSourceAccessor().getMessage("probe.src.dataSourceTest.resource.lookup.failure", new Object[]{resourceName}));
        }

        if (dataSource == null) {
            request.setAttribute("errorMessage", getMessageSourceAccessor().getMessage("probe.src.dataSourceTest.resource.lookup.failure", new Object[]{resourceName}));
        } else {
            List results = null;
            int rowsAffected = 0;

            try {
                // TODO: use Spring's jdbc template?
                Connection conn = dataSource.getConnection();

                try {
                    conn.setAutoCommit(true);
                    PreparedStatement stmt = conn.prepareStatement(sql);

                    try {
                        boolean hasResultSet = stmt.execute();

                        if (! hasResultSet) {
                            rowsAffected = stmt.getUpdateCount();
                        } else {
                            results = new ArrayList();
                            ResultSet rs = stmt.getResultSet();

                            try {
                                ResultSetMetaData metaData = rs.getMetaData();

                                while(rs.next() && (maxRows < 0 || results.size() < maxRows)) {
                                    Map record = new LinkedHashMap();

                                    for (int i = 1; i <= metaData.getColumnCount(); i++) {
                                        String value = rs.getString(i);

                                        if (rs.wasNull()) {
                                            value = getMessageSourceAccessor().getMessage("probe.src.dataSourceTest.sql.null");
                                        } else {
                                            value = HtmlUtils.htmlEscape(value);
                                        }

                                        // a work around for IE browsers bug of not displaying
                                        // a border around an empty table column

                                        if (value.equals("")) {
                                            value = "&nbsp;";
                                        }

                                        record.put(HtmlUtils.htmlEscape(metaData.getColumnName(i)), value);
                                    }

                                    results.add(record);
                                }
                            } finally {
                                rs.close();
                            }

                            rowsAffected = results.size();
                        }
                    } finally {
                        stmt.close();
                    }
                } finally {
                    conn.close();
                }

                // store the query results in the session attribute in order
                // to support a result set pagination feature without re-executing the query

                synchronized(sess) {
                    sessData.setResults(results);
                }

                ModelAndView mv = new ModelAndView(getViewName(), "results", results);
                mv.addObject("rowsAffected", String.valueOf(rowsAffected));
                mv.addObject("rowsPerPage", String.valueOf(rowsPerPage));
View Full Code Here


    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
        HttpSession sess = request.getSession(false);
        List queryHistory = null;

        if (sess != null) {
            DataSourceTestInfo sessData = (DataSourceTestInfo) sess.getAttribute(DataSourceTestInfo.DS_TEST_SESS_ATTR);

            if (sessData != null) {
                queryHistory = sessData.getQueryHistory();
            }
        }

        return new ModelAndView(getViewName(), "queryHistory", queryHistory);
    }
View Full Code Here

    private long collectionPeriod;

    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
        HttpSession sess = request.getSession(false);

        DataSourceTestInfo sessData = null;

        if (sess != null) {
            sessData = (DataSourceTestInfo) sess.getAttribute(DataSourceTestInfo.DS_TEST_SESS_ATTR);
        }

        String referer = request.getHeader("Referer");
        String backURL;
        if (referer != null) {
            backURL = referer.replaceAll(replacePattern, "");
        } else {
            backURL = null;
        }

        return new ModelAndView(getViewName())
                .addObject("maxRows", String.valueOf(sessData == null ? getMaxRows() : sessData.getMaxRows()))
                .addObject("rowsPerPage", String.valueOf(sessData == null ? getRowsPerPage() : sessData.getRowsPerPage()))
                .addObject("historySize", String.valueOf(sessData == null ? getHistorySize() : sessData.getHistorySize()))
                .addObject("backURL", backURL)
                .addObject("collectionPeriod", new Long(getCollectionPeriod()));
    }
View Full Code Here

        int sqlId = ServletRequestUtils.getIntParameter(request, "sqlId", -1);

        HttpSession sess = request.getSession(false);

        if (sess != null) {
            DataSourceTestInfo sessData = (DataSourceTestInfo) sess.getAttribute(DataSourceTestInfo.DS_TEST_SESS_ATTR);

            if (sessData != null) {
                List queryHistory = sessData.getQueryHistory();

                if (queryHistory != null) {
                    try {
                        String sql = (String) queryHistory.get(sqlId);
                        response.setCharacterEncoding("UTF-8");
View Full Code Here

        if (sess == null) {
            request.setAttribute("errorMessage", getMessageSourceAccessor().getMessage("probe.src.dataSourceTest.cachedResultSet.failure"));
            logger.error("Cannot retrieve a cached result set. Http session is NULL.");
        } else {
            DataSourceTestInfo sessData = (DataSourceTestInfo) sess.getAttribute(DataSourceTestInfo.DS_TEST_SESS_ATTR);

            if (sessData == null) {
                request.setAttribute("errorMessage", getMessageSourceAccessor().getMessage("probe.src.dataSourceTest.cachedResultSet.failure"));
                logger.error("Cannot retrieve a cached result set. " + DataSourceTestInfo.DS_TEST_SESS_ATTR + " session attribute is NULL.");
            } else {
                synchronized(sess) {
                    sessData.setRowsPerPage(rowsPerPage);   
                }

                results  = sessData.getResults();

                if (results == null) {
                    request.setAttribute("errorMessage", getMessageSourceAccessor().getMessage("probe.src.dataSourceTest.cachedResultSet.failure"));
                    logger.error("Cached results set is NULL.");
                else {
View Full Code Here

TOP

Related Classes of com.googlecode.psiprobe.model.sql.DataSourceTestInfo

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.