Oracle SQL : JDBC

1 분 소요

JDBC: 데이터베이스 연결 프로그래밍

“데이터베이스”는 왜 필요한가?

프로그램을 실행한 결과를 화면에 출력하면
전원을 끄고 나면 그 결과는 날아가 버린다. ==> 휘발성
그래서 그 결과를 영구적으로 보관하려면 파일을 이용한다.

그러나, 파일은 이해관계에 있는 여러 사람들이
항상 최신의 정보를 공유하기에는 어려움이 있다.

그래서 이해관계에 있는 사람들이 항상 최신의 정보를 공유하도록 자료를 한 곳에 모아둔 것이
“데이터베이스”

데이터베이스를 잘 사용하도록 도와주는 시스템 “데이터베이스 관리 시스템” DataBase Management System DBMS

DBMS 종류는 oracle, ms-sql, my-sql, mariadb 등이 있다. 우리나라에서는 oracle을 많이 사용한다.


속성(열, 필드) || |이름|국어|영어|수학| |—-|–|–|–| |홍길동|100|80|90| ->레코드(행, row) |이순신|80|90|100| |유관순|70|100|100|

테이블은 행과 열로 구성된 자료의 집합 데이터베이스는 서로 관련이 있는 테이블들이 모여서 데이터베이스를 구성한다.


테이블 생성 명령어

create tabel 테이블이름(속성이름 자료형, 속성이름 자료형, ....)

문자열의 자료형 ==> varchar2(100) 숫자 자료형 ==> number

sql>create table student(name varchar2(20),kor number, eng number,math number);

테이블 구조를 파악하는 명령어 sql>desc student;


테이블에 자료를 추가하는 데이터베이스 명령어

insert into 테이블이름 values(값1, 값2, ......);

이때 값의 수와 순서는 테이블의 구조와 같아야한다. 오라클에서 문자열을 반드시 홋따옴표로 묶어야한다.

insert into student values('홍길동',100,80,90);

이렇게 추가한 내용을 DBMS에 반영하려면 반드시 commit을 해야한다.

만약, 이렇게 추가한 내용을 취소 하려면 rollback을 한다.


테이블의 자료를 조회하기

select * from 테이블이름; select * from student;


==> 자바에서 데이터베이스에 연결 ==> Java DataBase Connect ==> JDBC 연결 프로그래밍


JDBC 프로그래밍 순서

—->자바에서 데이터베이스 연결 프로그래밍 순서

  1. JDBC드라이버를 메모리로 로드한다. Class.forName(oracle.jdbc.driver.OracleDriver);

  2. DB서버에 연결한다. Connection conn =DriverManager.getConnection(“서버의주소”,”사용자이름”,”암호”);

  3. 데이터베이스 명령을 실행할 Statement 객체를 생성한다. Statement stmt = conn.createStatement();

  4. 데이터베이스 명령을 실행한다. int re = stmt.executeUpdate(명령어) ==> 데이터베이스에 변경이 있는 명령을 시킬때 사용 ==> 성공적으로 명령을 수행한 레코드의 수(int형)를 반환

    ResultSet rs = stmt.executeQuery(명령어) ==> 데이터베이스의 내용을 읽어오는 명령을 시킬때 사용 ==> 읽어온 결과를 ResultSet으로 반환

  5. 일처리를 한다.

  6. 사용했던 자원을 모두 닫아 준다. rs.close(); stmt.close(); conn.close();


실행했더니 다음과 같은 오류가 발생한다. 예외발생: oracle.jdbc.driver.OracleDriver => 드라이버가 어디있는지 몰라서 그렇다. 드라이브의 위치를 알려줄 것. (이클립스에 포함시켜주어야 한다.)

오라클 설치된 다음의 경로에 C:\app\a863a\product\21c\dbhomeXE\jdbc\lib

해결방법

이클립스 프로젝트이름에 오른쪽 단추 ->Properties ->JavaBuildPath ->Libraries ->C:\app\a863a\product\21c\dbhomeXE\jdbc\lib\ojdbc8.jar ->apply and close

sql> SQL> ed ff

SQL> @ff SQL> select * from goods;

NO ITEM QTY PRICE —– ———- —– ——– 1 색종이 10 1,500


자료의 수정

update 테이블이름 set 컬럼이름 =값, 컬럼이름=값, .. where 컬럼이름=값

update goods set qty= 20, price=2000, item=’공책’ where no=7;

자료의 삭제

delete 테이블명 where 컬럼이름=값; delete goods where no=7;

  1. 상품번호를 매개변수로 전달받아 데이터베이스에서 삭제를 하는 메소드를 ㅏㄴ든다.
  2. 삭제 버튼을 누르면 텍스트필드의 상품번호를 갖고와서 삭제하는 메소드를 호출

CRUD

태그:

카테고리:

업데이트: