https://mvnrepository.com/

...ojdbc10 다운...받아야하는데 없네?

pom.xml에
코드
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc10</artifactId>
<version>19.17.0.0</version>
</dependency>
//를 dependencies 안에 넣어준다.

넣으면 비활성되어 빨갛게 될텐데
[ pom.xml - 오른쪽클릭 - Maven - 프로젝트 다시 로드 ]
로 활성화 해준다.
[프로젝트 구조 - 라이브러리- "+" - Maven에서... - tomcat-jsp9.0.83 버전 찾아서 확인]



위에 Maven 넣으면 빨갛게 비활성화 되었는데 돌아온다!
//JDBConnect.java
package com.common;
import java.sql.*;
public class JDBConnect {
public Connection con; // 데이터베이스 연결을 담당
public Statement stat; // 파라미터 없는 경우 쿼리문 실행할 때 사용
public PreparedStatement psmt; // 파라미터가 있는 동적 쿼리문을 실행할 때 사용
public ResultSet rs; // 쿼리 결과문을 담을 때 사용
// 기본 생성자
public JDBConnect() {
try {
Class.forName("oracle.jdbc.OracleDriver");
// DB 연결
String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
String id = "test";
String pwd = "bitc5600";
con = DriverManager.getConnection(url, id, pwd); // db랑 연결 시키기
System.out.println("DB 연결 성공"); // 오류 없이 연결되면 출력
} catch (Exception e){
e.printStackTrace();
}
}
// 연결 해제
public void close() {
try {
if(rs != null) rs.close();
if(stat != null) stat.close();
if(psmt != null) psmt.close();
if(con != null) con.close();
System.out.println("JDBC 자원 해제");
}catch (Exception e){
e.printStackTrace();
}
}
}
//ConnectionTest.jsp
<%@ page import="com.common.JDBConnect" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h2>JDBC 연결 테스트 01</h2>
<%
JDBConnect jdbc1 = new JDBConnect();
jdbc1.close();
%>
</body>
</html>

DB연결 성공(기본 생성자)
JDBC 자원 해제
서버 환경과 관련된 정보들은 한 곳에 관리하는 것이 좋다. web.xml에 입력해놓고 필요할때마다 application 내장 객체를 통해 얻어온다.
web.xml에 컨텍스트 초기화 매개변소()로 입력한다.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<context-param> //드라이버 이름
<param-name>OracleDriver</param-name>
<param-value>oracle.jdbc.OracleDriver</param-value>
</context-param>
<context-param> //접속 URL
<param-name>OracleURL</param-name>
<param-value>jdbc:oracle:thin:@localhost:1521:ORCL</param-value>
</context-param>
<context-param> //오라클 계정 아이디
<param-name>OracleId</param-name>
<param-value>test</param-value>
</context-param>
<context-param> //오라클 계정 패스워드
<param-name>OraclePwd</param-name>
<param-value>bitc5600</param-value>
</context-param>
<context-param>
<param-name>INIT_PARAM</param-name>
<param-value>web.xml에 저장한 초기화 매개변수</param-value>
</context-param>
</web-app>
package com.common;
import javax.servlet.ServletContext;
import java.sql.*;
public class JDBConnect {
public Connection con; // 데이터베이스 연결을 담당
public Statement stat; // 파라미터 없는 경우 쿼리문 실행할 때 사용
public PreparedStatement psmt; // 파라미터가 있는 동적 쿼리문을 실행할 때 사용
public ResultSet rs; // 쿼리 결과문을 담을 때 사용
// 기본 생성자
public JDBConnect() {
try {
Class.forName("oracle.jdbc.OracleDriver");
// DB 연결
String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
String id = "test";
String pwd = "bitc5600";
con = DriverManager.getConnection(url, id, pwd); // db랑 연결 시키기
System.out.println("DB 연결 성공"); // 오류 없이 연결되면 출력
} catch (Exception e){
e.printStackTrace();
}
}
//2번째 생성자
public JDBConnect(String driver, String url, String id, String pwd){
try{
Class.forName(driver);
con = DriverManager.getConnection(url, id, pwd);
System.out.println("DB 연결 성공(인수 생성자 1)");
}catch (Exception e){
e.printStackTrace();
}
}
//3번째 생성자
public JDBConnect(ServletContext application){
try{
String driver = application.getInitParameter("OracleDriver");
Class.forName(driver);
//DB에 연결
String url = application.getInitParameter("OracleURL");
String id = application.getInitParameter("OracleId");
String pwd = application.getInitParameter("OraclePwd");
con = DriverManager.getConnection(url, id, pwd);
System.out.println("DB 연결 성공"); // 오류 없이 연결되면 출력
}catch (Exception e){
e.printStackTrace();
}
}
// 연결 해제
public void close() {
try {
if(rs != null) rs.close();
if(stat != null) stat.close();
if(psmt != null) psmt.close();
if(con != null) con.close();
System.out.println("JDBC 자원 해제");
}catch (Exception e){
e.printStackTrace();
}
}
}
<%@ page import="com.common.JDBConnect" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<html>
<head>
<title>JDBC 연결</title>
<%-- 요청이 있을 때마다 DB connection을 새로 연결하고 해제하면 시간이 많이 걸린다.
커넥션 풀 Connection Pool
Connection을 미리 생성해두고 필요할 때 가져다 쓰고 완료되면 반납하는 형식--%>
</head>
<body>
<%--<h2>JDBC 연결 테스트 01</h2>--%>
<%--<%--%>
<%-- JDBConnect jdbc1 = new JDBConnect();--%>
<%-- jdbc1.close();--%>
<%--%>--%>
<%--<h2>JDBC 연결 테스트 02</h2>--%>
<%--<%--%>
<%-- String driver = application.getInitParameter("OracleDriver");--%>
<%-- String url = application.getInitParameter("OracleURL");--%>
<%-- String id = application.getInitParameter("OracleId");--%>
<%-- String pwd = application.getInitParameter("OraclePwd");--%>
<%-- JDBConnect jdbc2 = new JDBConnect(driver, url, id, pwd);--%>
<%-- jdbc2.close();--%>
<%--%>--%>
<h2>JDBC 연결 테스트 03</h2>
<%
JDBConnect jdbc3 = new JDBConnect(application);
jdbc3.close();
%>
</body>
</html>
Connection을 미리 생성해두고 필요할 때 가져다 쓰고 완료되면 반납하는 형식

수정할 것이다.

//server.xml에 입력, GlobalNamingResoutses안에 입력.
<Resource auth="Container"
driverClassName = "oracle.jdbc.OracleDriver"
type="javax.sql.DataSource"
initialSize = "0"
minIdle="5"
maxTotal ="20"
maxIdle ="20"
maxWaitMillis="5000"
url="jdbc:oracle:thin:@localhost:1521:ORCL"
name="dbcp_myoracle"
username="scott"
password="tiger"/>

<ResourceLink global="dbcp_myoracle"
name="dbcp_myoracle"
type="javax.sql.DataSource"/>