database.jsp

来自「Jive是基于JSP/JAVA技术构架的一个大型BBS论坛系统,这是Jive论坛」· JSP 代码 · 共 516 行 · 第 1/2 页

JSP
516
字号
<%/** *	$RCSfile: database.jsp,v $ *	$Revision: 1.6 $ *	$Date: 2002/08/09 22:44:37 $ */%><%@ page	import="java.sql.*,            com.jivesoftware.forum.*,            com.jivesoftware.forum.util.*,            com.jivesoftware.forum.database.*,            java.text.NumberFormat"%><%@ include file="global.jsp" %><%  // Permission check    if (!isSystemAdmin) {        throw new UnauthorizedException("You don't have admin privileges to perform this operation.");    }%><%    boolean doClear = ParamUtils.getBooleanParameter(request,"doClear");    boolean sortByTime = ParamUtils.getBooleanParameter(request,"sortByTime",false);    String doLogStr = ParamUtils.getParameter(request,"doLog");    int alternate = 0;    // clear the statistics    if ( doClear ) {        ProfiledConnection.resetStatistics();    }    if ( doLogStr != null && doLogStr.equals("true")) {        ConnectionManager.setProfilingEnabled(true);    }    else if (doLogStr != null && doLogStr.equals("false")) {        ConnectionManager.setProfilingEnabled(false);    }    boolean doLog = ConnectionManager.isProfilingEnabled();%><%! // page method    /**     * Returns a String representation of a double value     * in a specific locale's format, limited to n decimal places     *     * @param value    number to format     * @param n        decimal places to allow in output     * @return a string with a max of n decimals     */    private static String buildStringValue(double value, int n) {        NumberFormat nf = NumberFormat.getInstance(Locale.US);        nf.setMaximumFractionDigits(n);        nf.setMinimumFractionDigits(n);        nf.setGroupingUsed(true);        /*        String buf = nf.format(amount);        if(buf.indexOf(".0") != -1) {            buf = buf.substring(0, buf.length() - (n + 1));        }        */        return nf.format(value);    }%><%@ include file="header.jsp" %><p><%  // Title of this page and breadcrumbs    String title = "Database Settings";    String[][] breadcrumbs = {        {"Main", "main.jsp"},        {"Database Settings", "database.jsp"}    };%><%@ include file="title.jsp" %><font size="-1">Below is a summary of your database settings. If you need to change them,you'll need to edit your jive_config.xml file.</font><p><%  // Get metadata about the database	boolean error = false;	DatabaseMetaData metaData = null;	Connection con = null;	if (!error) {		try {			con = ConnectionManager.getConnection();			metaData = con.getMetaData();%><font size="-1"><b>Database Properties</b></font><ul><table bgcolor="<%= tblBorderColor %>" cellpadding="0" cellspacing="0" border="0" width="300"><tr><td><table bgcolor="<%= tblBorderColor %>" cellpadding="3" cellspacing="1" border="0" width="100%"><tr bgcolor="#ffffff">    <td><font size="-1">Name:</font></td>    <td><font size="-1"><%= metaData.getDatabaseProductName() %></font></td></tr><tr bgcolor="#ffffff">    <td><font size="-1">Version:</font></td>    <td><font size="-1"><%= metaData.getDatabaseProductVersion() %></font></td></tr></table></td></tr></table></ul><font size="-1"><b>JDBC Driver Properties</b></font><ul><table bgcolor="<%= tblBorderColor %>" cellpadding="0" cellspacing="0" border="0" width="300"><tr><td><table bgcolor="<%= tblBorderColor %>" cellpadding="3" cellspacing="1" border="0" width="100%"><tr bgcolor="#ffffff">    <td><font size="-1">Driver:</font></td>    <td><font size="-1"><%= metaData.getDriverName() %>, version <%= metaData.getDriverVersion() %></font></td></tr><tr bgcolor="#ffffff">    <td><font size="-1">Connection URL:</font></td>    <td><font size="-1"><%= metaData.getURL() %></font></td></tr><tr bgcolor="#ffffff">    <td><font size="-1">Connection username:</font></td>    <td><font size="-1"><%= metaData.getUserName() %></font></td></tr></table></td></tr></table></ul><font size="-1"><b>Database Capabilities</b></font><ul><table bgcolor="<%= tblBorderColor %>" cellpadding="0" cellspacing="0" border="0" width="300"><tr><td><table bgcolor="<%= tblBorderColor %>" cellpadding="3" cellspacing="1" border="0" width="100%"><tr bgcolor="#ffffff">    <td><font size="-1">Supports transactions?</font></td>    <td><font size="-1"><%= (metaData.supportsTransactions())?"Yes":"No" %></font></td></tr><tr bgcolor="#ffffff">    <td><font size="-1">Supports multiple connections <br>open at once?</font></td>    <td><font size="-1"><%= (metaData.supportsMultipleTransactions())?"Yes":"No" %></font></td></tr><tr bgcolor="#ffffff">    <td><font size="-1">Is in read-only mode?</font></td>    <td><font size="-1"><%= (metaData.isReadOnly())?"Yes":"No" %></font></td></tr></table></td></tr></table></ul><% if (doLog) { %><font size="-1"><b>Select Query Statistics</b></font><ul><table bgcolor="<%= tblBorderColor %>" cellpadding="0" cellspacing="0" border="0" width="600"><tr><td><table bgcolor="<%= tblBorderColor %>" cellpadding="3" cellspacing="1" border="0" width="100%"><tr bgcolor="#ffffff">    <td><font size="-1">Total # of selects</font></td>    <td><font size="-1"><%= ProfiledConnection.getQueryCount(ProfiledConnection.SELECT) %></font></td></tr><tr bgcolor="#ffffff">    <td><font size="-1">Total time for all selects (ms)</font></td>    <td><font size="-1"><%= ProfiledConnection.getTotalQueryTime(ProfiledConnection.SELECT) %></font></td></tr><tr bgcolor="#ffffff">    <td><font size="-1">Average time for all selects (ms)</font></td>    <td><font size="-1"><%= buildStringValue(ProfiledConnection.getAverageQueryTime(ProfiledConnection.SELECT),3) %></font></td></tr><tr bgcolor="#ffffff">    <td><font size="-1">Selects per second</font></td>    <td><font size="-1"><%= buildStringValue(ProfiledConnection.getQueriesPerSecond(ProfiledConnection.SELECT),3) %></font></td></tr><tr bgcolor="#ffffff">    <td><font size="-1">20 Most common selects</font></td>    <td bgcolor="#ffffff"><%            ProfiledConnectionEntry[] list = ProfiledConnection.getSortedQueries(ProfiledConnection.SELECT, sortByTime);            if (list == null || list.length < 1) {                out.println("<font size=\"-1\">No queries</font>");            }            else { %>            &nbsp;     </td></tr></table></td></tr></table><br><table bgcolor="<%= tblBorderColor %>" cellpadding="0" cellspacing="0" border="0" width="600"><tr><td><table bgcolor="<%= tblBorderColor %>" cellpadding="3" cellspacing="0" border="0" width="100%"><tr bgcolor="#ffffff"><td><%        out.println("<table width=\"100%\" cellpadding=\"3\" cellspacing=\"1\" border=\"0\" bgcolor=\"" + tblBorderColor + "\"><tr><td bgcolor=\"#ffffff\" align=\"middle\"><font size=\"-1\"><b>Query</b></font></td>");        out.println("<td bgcolor=\"#ffffff\"><font size=\"-1\"><b><a href=\"javascript:location.href='database.jsp?sortByTime=false';\">Count</a></b></font></td>");        out.println("<td bgcolor=\"#ffffff\"><font size=\"-1\"><b>Total Time (ms)</b></font></td>");        out.println("<td bgcolor=\"#ffffff\"><font size=\"-1\"><b><a href=\"javascript:location.href='database.jsp?sortByTime=true';\">Average Time</a> (ms)</b></font></td></tr>");        for (int i = 0; i < ((list.length > 20) ? 20 : list.length); i++) {            ProfiledConnectionEntry pce = list[i];            out.println("<tr><td bgcolor=\"" + ((alternate%2 == 0) ? "#dddddd" : "#ffffff") + "\"><font size=\"-1\">" + pce.sql + "</font></td>");            out.println("<td bgcolor=\"" + ((alternate%2 == 0) ? "#dddddd" : "#ffffff") + "\"><font size=\"-1\">" + pce.count + "</font></td>");            out.println("<td bgcolor=\"" + ((alternate%2 == 0) ? "#dddddd" : "#ffffff") + "\"><font size=\"-1\">" + pce.totalTime + "</font></td>");            out.println("<td bgcolor=\"" + ((alternate++%2 == 0) ? "#dddddd" : "#ffffff") + "\"><font size=\"-1\">" + pce.totalTime/pce.count + "</font></td></tr>");        }        out.println("</table>");    }    %></td></tr></table></td></tr></table></ul><font size="-1"><b>Insert Query Statistics</b></font><ul><table bgcolor="<%= tblBorderColor %>" cellpadding="0" cellspacing="0" border="0" width="600"><tr><td><table bgcolor="<%= tblBorderColor %>" cellpadding="3" cellspacing="1" border="0" width="100%"><tr bgcolor="#ffffff">    <td><font size="-1">Total # of inserts</font></td>    <td><font size="-1"><%= ProfiledConnection.getQueryCount(ProfiledConnection.INSERT) %></font></td></tr><tr bgcolor="#ffffff">    <td><font size="-1">Total time for all inserts (ms)</font></td>    <td><font size="-1"><%= ProfiledConnection.getTotalQueryTime(ProfiledConnection.INSERT) %></font></td></tr>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?