url = ip주소 : 포트 : SID
(내주소 : 1521(오라클) : 오라클 인스턴스 이름으로 XE(기본)일거임)
흐름
1. JDBC드라이버 로딩 -- Class.forName() 사용.
2. Connection객체 생성 -- 데이터베이스에 연결.
3. Statement객체 생성 -- Sql 쿼리문 실행 한다.
4. ResultSet 객체 생성 -- Sql쿼리문의 실행결과 저장 및 값 출력
5. 작업 종료 -- close() 사용.
- 1, 2단계는 단 한번만 실행이 되고 연결이 되면 3,4가 반복되면서 실행됨
- 즉 드라이버는 실행시 단 한번만 로딩이 되고 연결이 되면 필요한 작업(데이터 저장, 수정 등등)등을 해주고 작업종료를 하면된다.
// jdbcTest.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="java.sql.* " %>
<%
Connection conn = null; // Connection 객체 생성 DB 연결
String driver = "oracle.jdbc.driver.OracleDriver";
// Class.forName(driver) : JDBC-ODBC 브릿지 드라이버가 프로그램에 로드된다.
// 만일 이외에 다른 드라이브를 로드하고 싶다면 JDBC 드라이버를 클래스 패스에 추가한 후에
String url = "jdbc:oracle:thin:@localhost:1521:XE";
Boolean connect = false;
try{
Class.forName(driver); // JDBC 드라이버 로딩 Class.forName() 객체 사용
conn = DriverManager.getConnection(url,"hr","hr"); // 드라이버와 url(주소), 계정아이디, 비번
// 드라이버를 로딩해주는 역활도 해주지만 더 중요한 Connection 객체를 생성해 준다.
// 객체가 생성되면 데이터베이스에 연결이 된다.
connect = true;
conn.close();
}catch(Exception e){
connect = false;
e.printStackTrace();
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
if(connect == true){%>
연결되었습니다.
<% }else{%>
연결에 실패하였습니다.
<% } %>
</body>
</html>
커넥션 풀
- commons.apache.org (톰캣 구버전 사용시 여기서 dbcp 커넥션풀 jar 다운)
// dbcpAPITest.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import = "java.sql.*" %>
<%@ page import = "javax.sql.*" %>
<%@ page import = "javax.naming.*" %>
<!-- 커넥션 풀 -->
<%
Connection conn = null;
try{
Context init = new InitialContext(); //
DataSource ds = (DataSource) init.lookup("java:comp/env/jdbc/OracleDB");
conn = ds.getConnection();
out.println("<h3>연결되었습니다.</h3>");
}catch(Exception e){
out.println("<h3>연결실패</h3>");
e.printStackTrace();
}
%>
- META-INF (DB 환경파일 삽입)
- db접속 정보들
-web.xml (리소스 설정)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>JDBC</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<resource-ref>
<description>Connection</description>
<res-ref-name>jdbc/OracleDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
자바언어로 쿼리문 이용
- 이클립스
// statementTest.jsp
- statement 는 짧은 쿼리문을 작성할때 사용함.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import = "java.sql.* " %>
<%@ page import = "javax.sql.* " %>
<%@ page import = "javax.naming.* " %>
<%
Connection conn = null;
String sql = "INSERT INTO student (num,name) VALUES (6,'박EJ')";
try{
Context init = new InitialContext();
DataSource ds = (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
conn = ds.getConnection();
Statement stmt = conn.createStatement();
int result = stmt.executeUpdate(sql);
if(result != 0){
out.println("<h3>레코드 삽입 완료</h3>");
}
}catch(Exception e){
out.println("<h3>레코드 등록실패</h3>");
e.printStackTrace();
}
%>
이클립스에 오라클(DBMS) 연결
- 이클립스 하단부에 Data Source Explorer 클릭 > Database Connections 오른쪽 마우스 New 클릭
- 자신에게 맞는 DBMS 선택 저는 "Oracle" 하고 Next
- + 를 누르고 아래와 같은 화면이 나오면 해당 버전에 맞게 선택합니다.
- Name/Type
- JAR List
- Add 를 눌러 자신의 버전에 맞는 ojdbc jar를 선택하여 추가합니다.
- 기존의 ojdbc는 Clear All을 시켜 없애줍니다.
- Properites
- 아래 화면은 기본값인데 자신이 설정한 정보와 맞게 입력합니다.
- OK 를 누르면 아래와 같이 떠야함
- Test Connection 을 눌러 연결확인을 먼저 하기
Ping 연결이 성공했다고 떠야함.
- 오라클 연동 성공시 뜨는 것들
'자바과정 > DB(Oracle)' 카테고리의 다른 글
MVC 2패턴 흐름과 게시판 흐름도 (0) | 2021.03.18 |
---|---|
DB를 활용한 회원가입/로그인 (JDBC, 오라클, MVC 1패턴) (0) | 2021.03.16 |
데이터베이스란? 2부(DB와 테이블) (0) | 2021.03.14 |
데이터베이스란? 1부 (0) | 2021.03.14 |
SQL 조건문 (0) | 2021.03.12 |
댓글