DB 연결할 때 자주 발생하는 오류들을 아래 코드 기준으로 알아본다.
package com.test.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
public class Ex01 {
public static void main(String[] args) {
Connection conn = null;
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String id = "hr";
String pw = "java1234";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, id, pw);
System.out.println(conn.isClosed()); //false
System.out.println("질의 실행");
conn.close();
System.out.println(conn.isClosed());
} catch (Exception e) {
e.printStackTrace();
}
}
}
1. 서버 주소를 틀렸을 때
String url = "jdbc:oracle:thin:@localhost2:1521:xe";
[발생 오류]
IO 오류: The Network Adapter could not establish the connection
java.net.UnknownHostException: 알려진 호스트가 없습니다 (localhost2)
[발생 원인]
@localhost가 아닌 @localhost2로 서버 주소를 잘못 작성했다.
2. 포트 번호를 틀렸을 때
String url = "jdbc:oracle:thin:@localhost:15221:xe";
[발생 오류]
IO 오류: The Network Adapter could not establish the connection
java.net.ConnectException: Connection refused: no further information
[발생 원인]
포트번호를 1521가 아닌 15221로 잘못 작성했다.
3. 연결 문자열을 틀렸을 때
String url = "jdbc:oracle:thin:localhost:1521:xe";
[발생 오류]
java.sql.SQLException: 부적합한 Oracle URL이 지정되었습니다
[발생 원인]
연결 문자열 url에서 어딘가를 틀렸을 때 발생한다. 위 같은 경우 localhost 앞에 '@'를 누락했다.
자주 실수하는 부분 중 하나이므로 주의한다.
4. SID를 틀렸을 때
String url = "jdbc:oracle:thin:localhost:1521:xi";
[발생 오류]
TNS:listener does not currently know of SID given in connect descriptor
[발생 원인]
xe를 xi로 SID를 잘못 기재하였다.
5. 아이디/암호를 틀렸을 때
String id = "hr";
String pw = "java12345";
[발생 오류]
ORA-01017: invalid username/password; logon denied
[발생 원인]
id, pw 둘 중 하나라도 틀렸을 때 발생하므로 id, pw를 확인해본다..
6. JDBC 드라이버를 틀렸을 때
Class.forName("oracle.jdbc.driver.oracleDriver");
[발생 오류]
java.lang.ClassNotFoundException: oracle.jdbc.driver.oracleDriver
[발생 원인]
OracleDriver를 oracleDriver로 잘못 기재했다. 대소문자를 구분하므로 주의해서 작성한다.
7. 오라클이 중지됐을 때
[발생 오류]
Listener refused the connection with the following error:
[해결 방법]
오라클이 중지됐을 때 발생되는 에러이므로 [서비스] 에서 OracleServiceXE가 중지되었는지 확인한다.
중지된 상태라면 시작 버튼을 눌러 가동시켜준다.
8. ojdbc.jar 를 미설치했을 때
[발생 오류]
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
[해결 방법]
Java Build Path 에 들어가 Classpath에 'ojdbc6.jar' 파일이 연결되었는지 확인한다.를 참고한다.
연결되지 않았다면 https://steady-record.tistory.com/entry/웹에-데이터베이스JDBC-연결하기 를 참고한다
'SERVER(Servlet, JSP)' 카테고리의 다른 글
[Server] 메모 project : 메모 CRUD (0) | 2023.10.24 |
---|---|
[Server] MVC 디자인 패턴 기초 (1) | 2023.10.23 |
[JSP] 페이지 이동과 내장 객체 저장소의 생명주기(★) (0) | 2023.10.19 |
[JSP] 이미지 뷰어(업로드 및 삭제처리) (0) | 2023.10.18 |
[JSP] cos library를 활용한 파일 업로드/다운로드 (0) | 2023.10.18 |