달력

7

« 2025/7 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2010. 1. 11. 19:44

MetaData와 만능테이블 보이기 카테고리 없음2010. 1. 11. 19:44


1. ResultSetMetaData를 이용하여 만능테이블을 만들어 보자.

 

우선 index.jsp에서

 

SELECT * FROM TAB

을 이용하여 모든 테이블을 출력한다.

 

모든 테이블에 각각 ANCHOR를 둬서

 

누르면 list.jsp?table=테이블 이름

이 list.jsp로 전달되도록 한다.

 

2. list.jsp에서

String table=request.getParameter("table");

로 테이블이름을 받아서

 


"SELECT * FROM   "+table

로 그 테이블을 내용을 모두 가져오도록 한다.

 

//-------------------------  index.jsp

 

<%@ page contentType="text/html; charset=euc-kr" %>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.ResultSetMetaData"%>
<% request.setCharacterEncoding("euc-kr");%>
<% response.setContentType("text/html; charset=euc-kr");%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>All Employees</title>
</head>
<body>
<h3>SELECT * FROM TAB </h3><br/>
<a href='index.jsp'>Home</a><br/>
<%
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
String user="hr";
String pwd="oracle";
Connection conn=DriverManager.getConnection(url,user,pwd);
String sql="SELECT * FROM TAB ";
PreparedStatement psmt=conn.prepareStatement(sql);
ResultSet rs=psmt.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
int count=rsmd.getColumnCount();
%>
<table border='1' WIDTH='90%'>
<tr bgcolor='#8080ff'>
<%
for(int i=1; i<=count; i++){
 %>
 <td><%=rsmd.getColumnName(i) %></td>
 <%
}
%>
</tr>

<tr bgcolor='#984554'>
<%
for(int i=1; i<=count; i++){
 %>
 <td><%=rsmd.getColumnTypeName(i) %></td>
 <%
}
%>
</tr>
<%
while(rs.next()){
 %>
 <tr bgcolor='#ffee33'>
 <%
 for(int i=1; i<=count; i++){
  //tab에서 가장 앞에 것만 테이블 이름을 보인다.
  if(i==1){
  
   %>
    <td> <a href='list.jsp?table=<%=rs.getString(i)%>'><%=rs.getString(i)%></a>  </td>
    <%
  }else{
   %>
    <td><%=rs.getString(i)%> </td>
    <%
  }
 }
 %>
    </tr>
 <%
}
if(rs!=null)rs.close();
if(psmt!=null)psmt.close();
if(conn!=null)conn.close();
%>
</table>
<a href='index.jsp'>Home</a><br/>
</body>
</html>

 

//------------------------- list.jsp

 

<%@ page contentType="text/html; charset=euc-kr" %>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.ResultSetMetaData"%>
<% request.setCharacterEncoding("euc-kr");%>
<% response.setContentType("text/html; charset=euc-kr");%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.sql.Types"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>All Employees</title>
</head>
<body>
<%!
//년-월-일 형식으로 출력
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
%>
<%
String table=request.getParameter("table");
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl";
String user="hr";
String pwd="oracle";
Connection conn=DriverManager.getConnection(url,user,pwd);
//만능 테이블 보이기
String sql="SELECT * FROM  "+(table==null?" TAB":table);
PreparedStatement psmt=conn.prepareStatement(sql);
ResultSet rs=psmt.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
int count=rsmd.getColumnCount();
%>
<h3>SELECT * FROM <%=table%> </h3><br/>
<a href='index.jsp'>Home</a><br/>
<table border='1' WIDTH='90%'>
<tr bgcolor='#8080ff'>
<%
for(int i=1; i<=count; i++){
 %>
 <td><%=rsmd.getColumnName(i) %></td>
 <%
}
%>
</tr>
<tr bgcolor='#984554'>
<%
for(int i=1; i<=count; i++){
 %>
 <td><%=rsmd.getColumnTypeName(i) %></td>
 <%
}
%>
</tr>
<%
while(rs.next()){
 %>
 <tr bgcolor='#ffff33'>
 <%
 for(int i=1; i<=count; i++){
  //데이트 형일때만 년-월-일 형식으로 변환하여 보이기
  if(rsmd.getColumnType(i)==Types.DATE){
   %>
    <td><%=sdf.format(rs.getDate(i)) %></td>
    <%
  }else{
   %>
    <td><%=rs.getString(i) %></td>
    <%
  }
 }
 %>
    </tr>
 <%
}
if(rs!=null)rs.close();
if(psmt!=null)psmt.close();
if(conn!=null)conn.close();
%>
</table>
<a href='index.jsp'>Home</a><br/>
</body>
</html>

 

:
Posted by 상문이