⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getdbinfoservlet2.java

📁 连接数据库的sevlet小程序
💻 JAVA
字号:
package org.sunxin.lesson.jsp.bookstore;

import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.ArrayList;
import javax.sql.*;
import javax.naming.*;

public class GetDBInfoServlet2 extends HttpServlet
{
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
               throws ServletException,IOException
    {
        Connection conn=null;
        Statement stmt=null;
        ResultSet rs=null;
        
        try
        {
            Context ctx=new InitialContext();
            DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/bookstore");
            conn=ds.getConnection();
            
            resp.setContentType("text/html;charset=gb2312");
            PrintWriter out=resp.getWriter();
            out.println("<html><head>");
            out.println("<title>数据库表的信息</title>");
            out.println("</head><body>");
            
            String tableName=req.getParameter("tableName");
            if(null==tableName || tableName.equals(""))
            {
                DatabaseMetaData dbMeta=conn.getMetaData();
                rs=dbMeta.getTables(null,null,null,new String[]{"TABLE"});
                out.println("<form action=\"getdbinfo\" method=\"get\">");
                out.println("<select size=1 name=tableName>");
                while(rs.next())
                {
                    out.println("<option value="+rs.getString("TABLE_NAME")+">");
                    out.println(rs.getString("TABLE_NAME"));
                    out.println("</option>");
                }
                out.println("</select><p>");
                out.println("<input type=\"submit\" value=\"提交\">");
                out.println("</form>");
            }
            else
            {
                stmt=conn.createStatement();
                rs=stmt.executeQuery("select * from "+tableName); 
                ResultSetMetaData rsMeta=rs.getMetaData();
                int columnCount=rsMeta.getColumnCount();
                out.println("<table border=1>");
                out.println("<caption>表的结构</catption>");
                out.println("<tr><th>字段名</th><th>字段类型</th><th>最大字符宽度</th></tr>");
                
                ArrayList<String> al=new ArrayList<String>();
                for(int i=1;i<=columnCount;i++)
                {
                    out.println("<tr>");
                    String columnName=rsMeta.getColumnName(i);
                    out.println("<td>"+columnName+"</td>");
                    al.add(columnName);
                    out.println("<td>"+rsMeta.getColumnTypeName(i)+"</td>");
                    out.println("<td>"+rsMeta.getColumnDisplaySize(i)+"</td>");
                }
                out.println("</table><p>");
                
                out.println("<table border=1>");
                out.println("<caption>表中的数据</catption>");
                out.println("<tr>");
                
                for(int i=0;i<columnCount;i++)
                {
                    out.println("<th>"+al.get(i)+"</th>");
                }
                
                while(rs.next())
                {
                    out.println("<tr>");
                    for(int i=1;i<=columnCount;i++)
                    {
                        out.println("<td>"+rs.getString(i)+"</td>");    
                    }
                    out.println("</tr>");
                }
                out.println("</table>");
            }
            out.println("</body><html>");
            out.close();
        }
        catch(NamingException ne)
        {
            ne.printStackTrace();
        }
        catch(SQLException se)
        {
            se.printStackTrace();
        }
        finally
        {
            if(rs!=null)
            {
                try
                {
                    rs.close();
                }
                catch(SQLException se)
                {
                    se.printStackTrace();
                }
                rs=null;
            }
            if(stmt!=null)
            {
                try
                {
                    stmt.close();
                }
                catch(SQLException se)
                {
                    se.printStackTrace();
                }
                stmt=null;
            }
            if(conn!=null)
            {
                try
                {
                    conn.close();
                }
                catch(SQLException se)
                {
                    se.printStackTrace();
                }
                conn=null;
            }
        }
    }
}

⌨️ 快捷键说明

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