[01] JDBC 접속 패턴
1. 실습 환경 설정
- Eclipse
. Project Type: Dynamic web project
. Project Name: jdbc_oracle
. Library : ojdbc.jar
- Oracle JDBC Driver "ojdbc.jar" 파일을 'WebContent/WEB-INF/lib' 폴더에 복사한다.
2. JSP ---------------------------------------> Oracle, MySQL
- JSP에서 처리 로직을 전부 구현하며 알아 보기가 쉽다.
- 개발이 단순하나 DB서버의 변경 및 데이터베이스의 종류가 바뀔경우 유지보수가 어렵다.
- 약간의 유지 보수 향상을 위해 SSI(Server Side Include) 방법을 이용한다.(DBConnection.jsp)
- DBMS 정보가 JSP 페이지에 공개됨으로 권장하지 않는다.
- SQL
1) COUNT(*): 레코드의 갯수를 리턴하며 0이거나 0보다 큰 값을 추출함
2) tab: 테이블 정보를 가지고 있는 시스템 테이블에 접근하는 View
ex) SELECT COUNT(*) FROM tab
3) as cnt: 컬럼 별명
ex) SELECT COUNT(*) as cnt FROM tab
ex) oracle
>>>>> WebContent/oracle_test.jsp
<%@ page contentType=
"text/html; charset=euc-kr" %>
<%@ page
import="java.sql.DriverManager" %><%@ page
import="java.sql.Connection" %><%@ page
import="java.sql.PreparedStatement" %><%@ page
import="java.sql.ResultSet" %><%
//------------------------------------------------------------String url =
"jdbc:oracle:thin:@db서버ip:1521:ora10g2";
String id =
"soa9_23";
String pass =
"oracle";
Class.
forName("oracle.jdbc.driver.OracleDriver");
Connection con =
DriverManager.
getConnection(url, id, pass
);
//------------------------------------------------------------// 테이블의 개수를 가져옴String sql =
"SELECT COUNT(*) as cnt FROM tab";
PreparedStatement pstmt = con.
prepareStatement(sql
);
ResultSet rs = pstmt.
executeQuery();
int cnt =
0;
if (rs.
next() ==
true){ // Move to first recordcnt = rs.
getInt("cnt");
// get}%>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=
"http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv=
"Content-Type" content=
"text/html; charset=euc-kr" />
<title>
oracle_test.
jsp</title>
</head>
<body>
<h2>
<%
out.
println("URL : " + url +
"<br>");
out.
println("ID : " + id +
"<br>");
out.
println("PASS: " + pass +
"<br>");
out.
println("Oracle 데이터베이스 접속에 성공했습니다." +
"<br>");
out.
println("현재 생성된 테이블의 갯수: " + cnt
);
%>
</h2>
</body>
</html>
<%
//------------------------------------------------try{if(rs !=
null) { rs.
close();
}}catch(Exception e
){ }try{if(pstmt !=
null) { pstmt.
close();
}}catch(Exception e
){ }try{if(con !=
null) { con.
close();
}}catch(Exception e
){ }//------------------------------------------------%>