Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Tuesday, December 11, 2007

java code for Database and Servlet: Database MetaData

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;

public class DbMetaServlet extends HttpServlet {

DataSource pool;

public void init() throws ServletException {

Context env = null;

try {

env = (Context) new InitialContext().lookup("java:comp/env");

pool = (DataSource) env.lookup("jdbc/oracle-8i-athletes");

if (pool == null)
throw new ServletException(
"'oracle-8i-athletes' is an unknown DataSource");

} catch (NamingException ne) {

throw new ServletException(ne);

}
}

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {

String sql = "select * from aTable";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
ResultSetMetaData rsm = null;

response.setContentType("text/html");
java.io.PrintWriter out = response.getWriter();
out
.println("Discover a ResultSet");
out.println("

Here is Info about the returned ResultSet

");
out.println("");

try {

//Get a connection from the pool
conn = pool.getConnection();

//Create a Statement with which to run some SQL
stmt = conn.createStatement();

//Execute the SQL
rs = stmt.executeQuery(sql);

//Get a ResultSetMetaData object from the ResultSet
rsm = rs.getMetaData();

int colCount = rsm.getColumnCount();

//print column names
printMeta(rsm, "name", out, colCount);

//print column index
printMeta(rsm, "index", out, colCount);

//print column type
printMeta(rsm, "column type", out, colCount);

//print column display size
printMeta(rsm, "column display", out, colCount);

} catch (Exception e) {

throw new ServletException(e.getMessage());

} finally {

try {

stmt.close();
conn.close();

} catch (SQLException sqle) {
}

}
out.println("
");
out.close();

} //doGet

private void printMeta(ResultSetMetaData metaData, String type,
java.io.PrintWriter out, int colCount) throws SQLException {

if (metaData == null || type == null || out == null)
throw new IllegalArgumentException(
"Illegal args passed to printMeta()");

out.println("");

if (type.equals("table")) {

out.println("Table name");

for (int i = 1; i <= colCount; ++i) {

out.println("" + metaData.getTableName(i) + "");
}

} else if (type.equals("name")) {

out.println("Column name");

for (int i = 1; i <= colCount; ++i) {

out.println("" + metaData.getColumnName(i) + "");
}

} else if (type.equals("index")) {

out.println("Column index");

for (int i = 1; i <= colCount; ++i) {

out.println("" + i + "");
}

} else if (type.equals("column type")) {

out.println("Column type");

for (int i = 1; i <= colCount; ++i) {

out.println("" + metaData.getColumnTypeName(i) + "");
}

} else if (type.equals("column display")) {

out.println("Column display size");

for (int i = 1; i <= colCount; ++i) {

out
.println("" + metaData.getColumnDisplaySize(i)
+ "");
}
}

out.println("");

}//printMeta

}

No comments: