<%@page import="java.sql.ResultSetMetaData"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>HR Table</h1>
<pre>
SELECT * FROM TAB
모든 테이블의 목록을 뿌려준다
</pre>
<%!
public boolean has$(String msg){
// $가 포함되어 있는 테이블은 링크되지 않도록 하기 위한 함수
return msg.contains("$");
}
%>
<%
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "hr";
String pass = "hr";
Connection conn = DriverManager.getConnection(url, user, pass);
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">
<tr>
<%
for(int i = 1;i < count + 1; i++){
%>
<td><%=rsmd.getColumnName(i) %> </td>
<%
}
%>
</tr>
<%
while(rs.next()){
%>
<tr>
<%
for(int i = 1;i < count + 1; i++){
String cols = rs.getString(i);
if(i == 1 && !has$(cols)){
%>
<td>
<a href="tableInfo.jsp?tname=<%=cols %>"><%=cols %></a>
</td>
<%
}
else{
%>
<td>
<%=rs.getString(i) %>
</td>
<%
}
}
%>
</tr>
<%
}
%>
</table>
<%
if(rs != null) rs.close();
if(psmt != null) psmt.close();
if(conn != null) conn.close();
%>
</body>
</html>
<Tip>
<% %> --> scriptlet => script + applet -> java Code Area (자바 코드에 자바 코드를 넣을 수 있는 것)
<%! %> --> scriptlet 선언부(전역변수 ,스테틱 변수 , 함수 는 여기서 선언해야 한다.)
<%= %> --> 값을 HTML에 넣어준다.
<%@page import="java.sql.ResultSetMetaData"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>HR Table</h1>
<pre>
지정 테이블의 데이터를 뿌려준다
</pre>
<%
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "hr";
String pass = "hr";
Connection conn = DriverManager.getConnection(url, user, pass);
// String sql = "SELECT * FROM TAB";
String tname = request.getParameter("tname");
String sql = "SELECT * FROM " + tname;
PreparedStatement psmt = conn.prepareStatement(sql);
ResultSet rs = psmt.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData(); // 컬럼의 정보
int count = rsmd.getColumnCount(); // 컬럼의 갯수
%>
<table border="1">
<tr>
<%
for(int i = 1;i < count + 1; i++){
%>
<td><%=rsmd.getColumnName(i) %> </td>
<%
}
%>
</tr>
<%
while(rs.next()){
%>
<tr>
<%
for(int i = 1;i < count + 1; i++){
%>
<td><%=rs.getString(i) %></td>
<%
}
%>
</tr>
<%
}
%>
</table>
<%
if(rs != null) rs.close();
if(psmt != null) psmt.close();
if(conn != null) conn.close();
%>
</body>
</html>
모든 DB 에 있는 데이터를 테이블에 뿌려주고
테이블 클릭시 해당 테이블 데이터 나옴
<h1>HR Table</h1>
<pre>
SELECT * FROM TAB <!-- 모든테이블 -->
모든 테이블의 목록을 뿌려준다
</pre>
<!-- 선언부 -->
<%!
public boolean has$(String msg){
// $가 포함되어 있는 테이블은 링크 되지 않도록 하기 위한 함수
return msg.contains("$");
// $ 가 있으면 ture 리턴
}
%>
<!-- 소스부 -->
<%
// Connection
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "hr";
String pass = "hr";
Connection conn = DriverManager.getConnection(url, user, pass);
// SQL 문
String sql = "SELECT * FROM TAB";
PreparedStatement psmt = conn.prepareStatement(sql);
ResultSet rs = psmt.executeQuery();
// 참고
ResultSetMetaData rsmd = rs.getMetaData(); // 컬럼의 정보
int count = rsmd.getColumnCount(); // 컴럼의 갯수
%>
<!-- table 에 data 넣기 -->
<table border="1">
<tr>
<%
for(int i=1; i<count + 1; i++){
%>
<td><%=rsmd.getColumnName(i) %></td>
<%
}
%>
</tr>
<%
while(rs.next()){
%>
<tr>
<%
for(int i=1; i<count+1; i++){
String cols = rs.getString(i);
if(i == 1 && !has$(cols)){
%>
<td>
<a href="tableInfo.jsp?tname=<%=cols %>"><%=cols %></a> // 클릭시 테이블 네임 넘겨줌
</td>
<%
}else{
%>
<td>
<%=rs.getString(i) %>
</td>
<%
}
}
%>
</tr>
<%
}
%>
</table>
<!-- 해방코드 반드시 해줘야함 -->
<%
if(rs != null) rs.close();
if(psmt != null) psmt.close();
if(conn != null) conn.close();
%>
------------------------------------------HR Table-----------------------------------------------
<h1>HR Table</h1>
<pre>
지정된 테이블의 데이터를 뿌려준다
</pre>
<!-- 소스부 -->
<%
// Connection
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "hr";
String pass = "hr";
Connection conn = DriverManager.getConnection(url, user, pass);
// SQL 문
// String sql = "SELECT * FROM TAB";
String tname = request.getParameter("tname");
String sql = "SELECT * FROM " + tname;
PreparedStatement psmt = conn.prepareStatement(sql);
ResultSet rs = psmt.executeQuery();
// 참고
ResultSetMetaData rsmd = rs.getMetaData(); // 컬럼의 정보
int count = rsmd.getColumnCount(); // 컬럼의 갯수
%>
<!-- 데이터 넣기 -->
<table border="1">
<tr>
<%
for(int i=1; i<count + 1; i++){
%>
<td><%=rsmd.getColumnName(i) %></td>
<%
}
%>
</tr>
<%
while(rs.next()){
%>
<tr>
<%
for(int i=1; i<count+1; i++){
%>
<td><%=rs.getString(i) %></td>
<%
}
%>
</tr>
<%
}
%>
</table>
<!-- 해방코드 반드시 해줘야함 -->
<%
if(rs != null) rs.close();
if(psmt != null) psmt.close();
if(conn != null) conn.close();
%>
* 추가 파일 넣어줘야함.
WEB - lNF --> lib --> ojdbc6.jar 파일을 넣어줘야합니다.
<결과표>
TNAME Push to Link 해당 테이블 객체가 나옴