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 { %> </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 + -
显示快捷键?