下面的程序是bea的一个servlet的例子,可以用来获取数据库表的信息。
累似于:desc 表名。你可以仔细地看看ResultSetMetaData的说明,在j2sdk的java.sql包下面。
package jdbc;
import java.sql.*;
import java.util.*;
import javax.naming.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class simplesql extends HttpServlet {
    
    public void service(HttpServletRequest req, HttpServletResponse res) 
        throws IOException
    {        
        res.setContentType("text/html");
        PrintWriter out = res.getWriter();
        out.println("<html><head><title>Hello datasource!</title></head><body>");
        out.println("<p><img src=images/BEA_Button_Final_web.gif align=right>");
out.println("<H1>simplesql.java</h1> Attempting connection....");
        java.sql.Connection conn = null;
        java.sql.Statement stmt = null;
        try {
            
            // ============== Make connection to database ==================
            // Obtain a Datasource connection from the WebLogic JNDI tree.
            
            // Get a context for the JNDI look up
            Context ctx = new InitialContext();            // Look up myDataSource
            javax.sql.DataSource ds
                = (javax.sql.DataSource) ctx.lookup ("weblogic.jdbc.jts.oraclePool");
            //Create a connection object
            conn = ds.getConnection();

            out.println("<p>Connection successful...<p>Executing SQL...<p>");
            
            // execute some SQL statements to demonstrate the connection. 
            stmt = conn.createStatement();
            
            stmt.execute("select * from notebook");
    
            ResultSet rs = stmt.getResultSet();
            out.println("<hr>Querying data ...<br>");            while (rs.next()) 
            {
                out.println("<br><b>TITLE:</b> " +  rs.getString("title") + 
                            "<br><b>CONTENT:</b> " +  rs.getString("content") + "<hr>");
            }
            
            //读取表的信息
            ResultSetMetaData rsmd = rs.getMetaData();
            out.println("Querying table meta data...<p>");
            out.println("Number of Columns: " + rsmd.getColumnCount() + "<b>");
            for (int i = 1; i <= rsmd.getColumnCount(); i++) {
                out.println("<p>Column Name: "          + rsmd.getColumnName(i));
                out.println("<br>Nullable: "             + rsmd.isNullable(i));
                out.println("<br>Precision: "            + rsmd.getPrecision(i));
                out.println("<br>Scale: "                + rsmd.getScale(i));
                out.println("<br>Size: "                 + rsmd.getColumnDisplaySize(i));
                out.println("<br>Column Type: "          + rsmd.getColumnType(i));
                out.println("<br>Column Type Name: "     + rsmd.getColumnTypeName(i));
                out.println("<br><hr>");
            }
        }
        catch (Exception e) 
        {
            out.println("Connection error:" + e);
        }
        finally 
        {
            try 
            {
             if (stmt != null)   stmt.close();
             if (conn != null)   conn.close();
            } 
            catch (SQLException sqle) 
            {
             out.println("Exception during close()" + sqle.getMessage());
            }
        }
        out.println("</b><h3>Example finished...</h3></body></html>");
    }
}