안녕하세요 오래전글이지만 실례가안된다면 한가지 여쭤보려고 합니다 ㅠ
이제막 JSP공부를하면서 context.xml방식으로 DB를 사용하다가
학원과 집에서 DB를 2중으로 작성하다보니 oracle cloud서비스를 알게되어 공부중인 학생입니다..!
package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
public class JdbcConection {
public Connection getConnection() {
Connection con = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@HYEONM1339_medium?TNS_ADMIN=/Users/hyeonmin/oracle/Wallet_HYEONM1339";
String user = "ADMIN";
String password = "password";
con = DriverManager.getConnection(url, user, password);
} catch(Exception e){
e.printStackTrace();
}
return con;
}
}
-------------------이렇게 자바클래스를 작성하고
Connection conn = new JdbcConection().getConnection();
String result="ok jdbc";
if(conn==null) result="error db";
conn를 생성하여 자바클래스에 정의해준 getConnection메소드를 사용할 경우 정상적으로 DB접속이 가능하여 CRUD가 다 작동이 됩니다.
근데 제가 배운방식은 커넥션풀을 이용하여
context.xml파일을 작성하여
<%!Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String sql = "SELECT * FROM MEMBER";%>
이런식으로 변수 생성 후
Context init = new InitialContext();
DataSource ds = (DataSource) init.lookup("java:comp/env/jdbc/OracleDB");
conn = ds.getConnection();
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
요렇게 사용하는데요
요거는 도대체 왜 작동이 안되는걸까요..!?
IO에러가 발생합니다 ㅠ
드라이버매니저를 사용하여 url,user,password정보를 직접 넣어주고 statement객체를 사용하는것과
DataSource를 만들어 사용하는거의 차이를 모르겠습니다 ㅠ
아래방식은 일반 오라클 데이터베이스에서는 문제없이 작동했었습니다 ㅠ
장문의 질문드려 죄송합니다 ㅠ
뭔가 길을찾을듯 한데 막히니 막막하네요 ㅠ
어..음.. 이유는 모르겠지만 해결했습니다..
갑자기.. 작동이 되네요,...!?