서로 데이터를 통신할때 프로토콜이 없으면 서로 통신을 못함.
JAVA와 DB도 마찬가지.
그럼 통신을 어떻게 하냐?
자바는 이미 JDBC라는 프로토콜이 갖춰져 있다.
이런 프로토콜이 없으면 어떻게 보내야 하냐면
사람이 직접 프로토콜을 지켜서 통신한다고 가정해보자.
하하하 라고 웃는것을 보낼때 웃는거 : 하하하 이런식으로 사람이 보내야함.

오라클 사용시 C:\app\사용자명\product\21c\dbhomeXE\jdbc\lib 폴더에 라이브러리가 있음.
ojdbc8.jar이 프로토콜 이다.

복사해서 lib 폴더에 넣어주자.




적용하는 방법. 아직 익숙치 않아 한번 더 적었다.

connection 이라는 메서드를 static으로 만든 후에 try라고 치면 try_catch문이 뜬다.

Class.을 try내부에 치면 이런애들이 나온다. 첫번째 것을 선택하자.
이건 오라클 기준으로 Driver를 로드할것이다.

해당 폴더에서 OrecleDriver가 있는지 확인 후 동일하게 적어주자.

Conn을 치면 커넥션이라는 클래스가 나온다. 즉시 적용하자.
import도 자동으로 잡아준다.

제일 마지막꺼 선택.

여기에 진입하겠다는 소리.
Listener 포트가 1521임 . 그래서 1521을 치는거 ( Listener는 출입문 )
데이터 보안을 위해 연결통로가 하나 더 있는거.
listener가 꺼져있으면 DB에 진입 불가. ( 리스너가 xe를 불러주는 역할이라 )
xe는 오라클의 서비스 id

두개가 켜져있어야 항상 구동된다.
* 경로에 한글이 적혀있으면 안됨 . ( 사용자명 포함 ) 사용자명은 실행 -> netplwiz하면 변경가능. *
해당 코드는 오라클 전용이다.
다른 DB를 사용할 경우 https://mvnrepository.com/ 가서 다른 데이터베이스꺼 보면 됨

conn으로 데이터를 통신 할 수 있다.

데이터 통신은 항상 오류가 생긴다. 데이터가 누락되거나, 연결 자체가 안되거나.
try에서 오류가나면 catch에서 오류를 잡아야 함.

저렇게 하면 오류 로그가 나온다.
익숙한 오류가 나오니 찾아서 고치면 된다.

익숙한 오류가 보인다. 에러가 나는거 그대로 보고 해석해서 고칠 수 있다.


저런식으로 찾아서 해결하면 된다.

try는 중간에 에러나면 다 뛰어넘고 catch로 간다. 그래서 오류가남. ( return을 안받을수도 있어서)

그래서 하단에 return null을 적어줘야 함.

try catch가 없어서 오류가 난다. try catch 문으로 적어야 한다.

PreparedStatement pstmt = -> prepareStatement (버퍼)에 문장(pstmt)을 담아라
'SELECT empno,ename FROM emp WHERE empno = 7369'를 담았다.

ResultSet rs는 커서라고 보면 됨.

이런식으로 가르키고 있는 느낌이다.

rs.next(); => 포인터를 한칸 아래로 내린다.

이런식으로 한칸 내린다는 이야기

해당 코드는 boolean값으로 출력된다. 즉 데이터가 있으면 true 출력, 없으면 false값을 출력한다.

boolean isTrue =rs.next(); // true면 한칸 내려라
System.out.println(isTrue); // 해당 값 출력
이라는 뜻.
데이터를 받으면 해당 데이터를 출력시키게 만들거다.

System.out.println(rs.getInt("empno")); // empno를 int값으로 받아라
System.out.println(rs.getString("ename")); // ename은 String값으로 받아라.
empno는 사원번호 데이터, 숫자로 되어있다 - > int
ename은 이름 데이터, 문자로 되어있다 - > String

while(rs.next()) // 데이터 끝까지 다 들고와
좀더 깔끔하게 출력하려고 두개를 합쳐서 불러오게 만들었다.
오라클에서 보던 데이터를 JAVA에서 볼 수 있게되니 감회가 새롭다
'캠퍼스 > Java' 카테고리의 다른 글
| 52.오류 잡아내기 (0) | 2022.08.16 |
|---|---|
| 51.for문으로 그림 (0) | 2022.08.14 |
| 49.ArrayList (0) | 2022.08.08 |
| 48. 제네릭 (0) | 2022.08.08 |
| 47. 인터페이스 (0) | 2022.08.07 |