下面的程序是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>");
}
}
累似于: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>");
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货