Inflearn brand logo image

인프런 커뮤니티 질문&답변

전용근님의 프로필 이미지
전용근

작성한 질문수

비전공자를 위한 Spring MVC 뽀개기 응용

오라클연동방법

해결된 질문

작성

·

123

0

선생님 질문있습니다

현재 mvc초급편 강의 완료후

강의가 좋다고 생각해서 mvc고급편 강의도 등록해서 수강중입니다.

 

h2로 db사용중인데 오라클로 사용하고싶어서 변경하려고 하는데 문제가 생겨서 질문드립니다

 

zulu21 사용중이므로 ojdbc11.jar 다운받아서 라이브러리에 추가해줬습니다

라이브러리 추가 방법은 project우클릭 build path를 통해서 libraries에서 classpath에 addExternal jars를 통해서 ojdbc11를 추가해줬습니다

이후 pom.xml에 h2관련 디펜던시를 주석처리 하였고

jdbcUtil.java에 Connection getConnection메서드 아래

 

try {

// 연결에 필요한 정보

// String user = "system";

// String pw = "**";

// String url = "jdbc:oracle:thin:@:1521:xe";

 

// 드라이버를 메모리에 할당

Class.forName("oracle.jdbc.driver.OracleDriver");

 

// 연결된 객체 가져오기

conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "**");

} catch (ClassNotFoundException e) {

System.out.println("드라이버 로딩 실패");// 드라이버 주소가 잘못됨

} catch (SQLException e) {

System.out.println("연결 실패");// url이 잘못됨

} catch (Exception e) {

System.out.println("알수 없는 오류");

}

return conn;

위로직을 추가했습니다

 

추가후 서버 재기동후 테스트결과

Cannot invoke "java.sql.Connection.prepareStatement(String)" because "this.conn" is null

위 오류가 나타납니다

드라이버 로딩이 실패했다고 해서 conn주소 localhost를 ip로 바꿔서 테스트를 해보았는데도 똑같은 오류가 발생합니다

 

JDBCUtil.java 변경이전에 jdbc설정부터 왠지 잘못된거같은데

오라클(디벨로퍼)연동방법 한번 설명해주실수 있나요 ㅠ??

그리고 로컬오라클에는 board, users 테이블 모두 생성했고 테이블에 insert도 한 상태입니다.

 

 

답변 3

0

전용근님의 프로필 이미지
전용근
질문자

해결했습니다 감사합니다!!

0

쌤즈(SSAMZ)님의 프로필 이미지
쌤즈(SSAMZ)
지식공유자

오라클 드라이버를 인식하지 못해서 커넥션 연결이 안되네요.

기존에 추가한 ojdbc11.jar 를 제거하시고 pom.xml에 오라클 드라이버 디펜던시 설정을 추가하세요.

그리고 Maven Dependencies에 라브러리 추가도 꼭 확인하시구요.

그럼 될겁니다. ㅎㅎ

해보시고 또 질문 올려주세요.

 

0

안녕하세요, 인프런 AI 인턴입니다. 전용근님.

Spring MVC 프로젝트에서 H2 데이터베이스를 Oracle 데이터베이스로 변경하고자 하시는군요. JDBC 연결 설정에 몇 가지 문제가 있을 수 있어 이 부분을 점검해보는 것이 좋겠습니다. 아래에 몇 가지 검토 및 수정할 사항들을 안내드립니다.

  1. Oracle JDBC 드라이버 설정:

    • ojdbc11.jar 파일을 프로젝트에 올바르게 추가했는지 확인해보세요. Maven 기반 프로젝트라면, 가능한 pom.xml 파일에 디펜던시를 설정하여 관리하는 것이 좋습니다. 아래와 같이 pom.xml 파일에 디펜던시를 추가해 보세요.
      
      <dependency>
      <groupId>com.oracle.database.jdbc</groupId>
      <artifactId>ojdbc11</artifactId>
      <version>21.3.0.0</version> <!-- 본인 사용 버전에 맞게 수정 -->
      </dependency>
      

  2. Connection 설정:

    • 연결 코드에서 사용하는 Oracle JDBC 드라이버의 클래스를 확인하세요:
      
      Class.forName("oracle.jdbc.OracleDriver");
      

      or
      
      Class.forName("oracle.jdbc.driver.OracleDriver");
      

  3. URL 및 사용자 정보 확인:

    • JDBC URL과 username, password가 정확한지 확인해주세요:
      
      String url = "jdbc:oracle:thin:@localhost:1521:xe";
      String user = "system";
      String password = "[your-password]";
      

  4. 오류 메시지 분석:

    • 오류 메시지 “Cannot invoke “java.sql.Connection.prepareStatement(String)” because “this.conn” is null”는 connection 객체가 생성되지 않았음을 의미합니다. 이는 드라이버 로딩 실패 또는 데이터베이스 URL, 사용자 정보 등이 올바르지 않을 때 발생할 수 있습니다.
    • catch 블록에서 추가적인 로그를 남겨 실제로 어디서 오류가 발생하는지 확인해 보세요.
  5. 결과 확인:

    • 위 설정들을 적용한 뒤 서버를 재기동하시고, 여전히 같은 오류가 발생하는지 확인합니다.

이 문제를 해결하기 위한 기존 질문과 답변들을 통해 더 많은 도움을 받을 수 있을 것입니다. 유사한 질문으로는 오라클과 자바 연동 문제 해결 등이 있을 수 있습니다. 관련 질문 URL은 상기 링크를 참조해 주시기 바랍니다. 안타깝게도 현재 데이터베이스와 관련된 질문의 직접 링크는 제공해드릴 수 없지만, “오라클 연동” 등의 키워드로 검색하시면 다른 수강생들의 질문과 답변을 확인하실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

전용근님의 프로필 이미지
전용근

작성한 질문수

질문하기