JDBC(Java와 OracleDB 연동)
- JDBC ( Java Database Connection)
- 자바와 데이터베이스를 연동
- 자바와 오라클DB 를 연결하기 위한 클래스들이 필요하다.
- 위의 클래스들을 압축해 놓은 라이브러리를 오라클 사에서 제공(.jar)
- 또는 오라클 설치 폴더에서 복사해서 사용 (ojdbc6.jar)
- 경로 > C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib
자바와 데이터베이스를 연동 (DB연결)
try~catch문에서 작성
1 |
|
에러 메세지
- java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
- oracle.jdbc.driver.OracleDriver 이 클래스가 없다.
- ojdbc6.jar를 연결해줘야한다.
- 프로젝트 우클릭 >Build Path > Configure Build Path > Libraries에서 넣기
- JSP에서는 넣는 폴더가 따로 있음
- java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
- Oracle 서버가 꺼져있을때 뜨는 오류 메세지.
행 추가
4) SQL문 작성
여기 중요!
대소문자 구분은 없지만 대문자로 작성함.
sql+=” INSERT INTO sungjuk “; 식으로 칼럼명 생략 가능하지만 자바에선 헷갈리고 기억이 나지 않을 수 있기 때문에 칼럼명을 다 적어준다.
DB에서는 문자열 구분기호 ‘’ 임!!!
sql+=” INSERT INTO sungjuk()”;
sql+=”VALUES()”;
뒤에 공백을 주지 않으면 한줄로 이어져서 나온다
” INSERT INTO sungjuk()VALUES”;
그래서 앞, 뒤에 공백을 준다.
sql+=” VALUES() “;
종결 세미콜론 찍지 않기
EX) sql+=” VALUES(); “;
여기까지는 String이기 때문에 그냥 String 값이다!!
5) SQL형식 변환
오라클 DB연결 성공은 DriverManager.getConnection 이게 성공했다는 의미.
리턴값이 있다. 변수에 담아야함.
DriverManager.getConnection(url, user, password); 적지말고,
Connection con=DriverManager.getConnection(url, user, password);
변수에 저장하기
DB 연결했다는 값을 con이 가지고 있다.
3번 ‘오라클 DB 서버 연결’ 에서 변수에 저장 시킴.
SQL문 변환한 값을 가지고 있는 자료형. 리턴형이 PreparedStatement.
이제 pstmt 를 가지고 실행해야 함.
6) SQL문 실행
executeUpdate()의 리턴형은 int , 변수에 저장한다
7)자원반납
- 순서주의하기!!
- 맨 처음에 열었던 걸 나중에 닫기!!
1 |
|
여기까지가 JDBC 기본이다.
행 수정
DB연결 후 (1~3번 까지는 고정)
4) SQL문 작성
1 |
|
5) SQL문 변환
1 |
|
행 삭제
4) SQL문 작성
1 |
|
5) SQL문 변환
1 |
|
행 읽기 1 (Select One)
4) SQL문 작성
1 |
|
5) SQL문 변환
1 |
|
int result=pstmt.executeUpdate(); 에서
executeUpdate()는 insert문,update문,delete문 사용할 때 사용.
Select문에서는 pstmt.executeQuery() 사용한다.
리턴값이 ResultSet
1 |
|
5-1) 칼럼 순서로 출력
순서가 중요하다!!!
cursor : 가리키는 값. 이동할 수 있다.
1 |
|
5-2) 칼럼명으로 접근
자바니까 “” 안에 적어야 한다.
1 |
|
행 읽기 2 (Select All)
4) SQL문 작성
1 |
|
5) SQL문 변환
1 |
|
연습문제
- 문) ‘이강인’의 국영수 점수와 평균 점수를 수정하시오
행 추가 연습
? 는 변수처리 하는것. ‘?’ 라고 하면 char형으로 인식됨. 주의하기.
? 순서와 ?에 들어갈 자료형 주의 -> ?의 갯수와 자료형이 일치되어야한다.
1 |
|
JDBC(Java와MySQL DB연동)
- mysql-connector-java-5.1.47.jar 라이브러리 필요
행 추가
1 |
|
행 읽기1(SelectOne)
1 |
|
행 읽기(SelectAll)
1 |
|
행 수정(Update)
1 |
|