일반적으로 컴퓨터 시스템에 전자적으로 저장되는 구조화된 정보 또는 데이터의 조직화된 모음
public class JDBConnect { Connection ⇐ DB연결
Statement, PreparedStatement, ResultSet ⇐ 쿼리실행 및 결과
public JDBConnect() {
try { ⇐ 오라클 드라이버 및 커넥션URL, 계정 정보
Class.forName("oracle.jdbc.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String id = "musthave";
String pwd = "1234";
con = DriverManager.getConnection(url, id, pwd);
}catch (Exception e) {
e.printStackTrace();
}
}
}
<context-param>
<param-name>OracleDriver</param-name> ⇐ 드라이버 이름
<param-value>oracle.jdbc.OracleDriver</param-value>
</context-param>
<context-param>
<param-name>OracleURL</param-name> ⇐ 접속 URL
<param-value>jdbc:oracle:thin:@localhost:1521:xe</param-value>
</context-param>
<context-param>
<param-name>OracleId</param-name> ⇐ 계정 아이디
<param-value>musthave</param-value>
</context-param>
<context-param>
<param-name>OraclePwd</param-name> ⇐ 패스워드
<param-value>1234</param-value>
</context-param>
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();
}
}
<h2>JDBC 테스트 2</h2>
<% ⇐ application내장객체로 컨텍스트 초기화 매개변수얻어옴
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();
%>
public JDBConnect(ServletContext application) { ⇐ 생성자 수정
try { ⇐ 생성자에서 직접 web.xml의 내용 읽어옴
String driver = application.getInitParameter("OracleDriver");
Class.forName(driver);
String url = application.getInitParameter("OracleURL");
String id = application.getInitParameter("OracleId");
String pwd = application.getInitParameter("OraclePwd");
con = DriverManager.getConnection(url, id, pwd);
<h2>JDBC 테스트 3</h2>
<% ⇐ JSP에서 application 내장객체를 인수로 전달
JDBConnect jdbc3 = new JDBConnect(application);
jdbc3.close();
%>
<GlobalNamingResources>
엘리먼트에 <Resource>
항목 추가<Context>
엘리먼트에 <ResourceLink>
항목 추가
- MySQL 설치 : 8.0버전
- MySQL 워크벤치 새로운 계정 생성하기
- (MySQL)새로 생성한 계정에 'jspdb' 스키마 생성
- Maven repository 사이트에서 'mysql connector' 검색하여 mysql-connector-j-8.0.33.jar 파일 다운로드,
intellij에서 (src>main>webapp>WEB-INF>lib) 경로 파일 추가하여 jar파일 붙여넣기- 인텔리제이 META-INF, context.xml 나오도록 프로젝트 구조 설정
- (src>main>java>common) 경로 파일 추가 하여 'JDBConnect' Java 클래스 생성
- (src>main>webapp>db_borad) 경로 파일 추가 하여 'connectTest.jsp' JSP 페이지 생성
- 커넥션 풀로 성능 개선
: tomcat 사이트 > Documentation > tomcat 10.1 > JDBC DataSource > MySQL DBCP 2 Example > (MySQL)context.xml 파일, web.xml 파일 수정
🔽 context.xml 파일
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/">
<Resource name="dbcp_oracle"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
username="lmh"
password="1234"
maxTotal="20"
maxIdle="10"
maxWaitMillis="-1"/>
<Resource name="dbcp_mysql"
auth="Container"
type="javax.sql.DataSource"
maxTotal="100"
maxIdle="30"
maxWaitMillis="10000"
username="lmh"
password="1234"
driverClassName="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/jspdb?useSSL=false&serverTimezone=Asia/Seoul&characterEncoding=UTF-8"/>
</Context>
👉 out.printout 컴파일 오류 해결
maven repository > tomcat jsp api
<!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-jsp-api -->
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jsp-api</artifactId>
<version>10.1.15</version>
</dependency>
pom.xml파일 수정 후 Maven 변경 내용 로드 버튼 클릭