개발/교육
(Java)15일차
kakk789
2022. 4. 15. 16:59
데이터베이스 (Database)
다수의 사람들이 공유하여사용 할 목적으로 통합 관리되는 데이터들의 모임
오라클 설치 후 접근 방법
CMD 창 - sqlplus 입력
데이터 베이스를 사용할 수 있는 "사용자 계정"을 만들기
create user 사용자이름 identified by 암호;
권한 주기 (Grant)
grant 권한명, ----- to 사용자이름;
grant connect, resource, dba to 사용자 이름;
- connect : 사용자로 하여금 접근할 수 있도록 하는 권한
- resource : 트리거, 시퀀스, 타입, 프로시저, 테이블 등을 사용 할 수 있도록 하는 권한, 이게 없으면 테이블 생성 불가능.
- dba : 해당 사용자가 소유한 DB를 관리할 수 있고, 작성 / 변경 / 제거 등을 할 수 있는 모든 권한\
테이블 만들기 (Create)
create table 테이블이름 (속성이름 자료형, ---------)
create table member(id, pwd, name);
오라클에서 자료형
- char : 고정형 (2000바이트)
- varchar2 = varchar : 가변 문자 입력 (4000바이트)
- number : 숫자형 타입의 데이터
테이블 검색(desc)
desc 테이블명
테이블에 자료 추가하기 (insert)
insert into 테이블 values(값1, 값2)
insert into member values ('hong', '홍길동', 20);
- 값의 순서는 테이블 구조의 속성의 수와 순서가 동일 해야함
- 오라클에서는 문자와 문자열의 처리를 동일하게 하려면 홋따옴표(' ')로 묶어서 표현
데이터 조회 방법 (Select)
select 컬럼이름1, 컬럼이름2,,,,,,from 테이블명
컬럼의 폭을 설정
cmd 에서 'ed ff' 입력 후 아래 그림과 같이 테이블 당 format을 입력
Java Database Connection Programming(JDBC)
- 자바가 데이터베이스에 연결하여 데이터베이스 명령어를 실행하는 프로그램
이클립스 <-> 오라클 연동 방법
1. 오라클 설치된 폴더에서 ojdbc8.jar 드라이버를 복사하여 java 설치 경로로 복사합니다.
오라클 설치된 폴더 (복사)
java 설치 경로(붙여넣기)
2. 이클립스에서 설정
'프로젝트 우클릭' -> 최하단 'properties' - 'Java Build Path' - 'Libraries' - 'Classpath' - 'Add External JARS' - '
apply and Close'
3. 코드에 아래와 같이 입력
- jdbc 드라이버를 메모리로 로드한다.
Class.forName("oracle.jdbc.driver.OracleDriver");
- DB 서버에 연결한다
DriverManager.getConnection("jdbc:oracle:thin:
@IP주소:1521:XE", "c##sist", "sist");
- 데이터베이스 명령을 실행하기 위한 객체를 생성
Statement stmt = conn.createStatement();
- 데이터베이스 명령을 실행한다.
stmt.executeUpdate(sql);
- 사용이 끝난 자원을 닫아준다.
stmt.close();
conn.close();
Oracle 에러 발생
The Network Adapter could not establish the connection
C:\app\ChangHee\product\21c\homes\OraDB21Home1\network\admin
- 리스너 실행 중인지 확인
- tnsnames.ora, listener.ora 파일의 host 가 현재 IP인지 확인
- 재기동
ORA-12505 에러 발생
- tnsnames.ora, listener.ora 의 host 이름을 컴퓨터 이름으로 해볼 것
- 재기동
executeUpdate / executeQuery
executeUpdate (Insert, Create, 등)
- 데이터 베이스에 변경이 있는 명령을 실행할 때 사용
executQuery (Select 등)
- 데이터베이스로부터 읽어오는 명령을 실행할 때 사용 (select)
- 읽어온 결과를 받을때는 ResultSet 반환받음.
- ResultSet 의 next()함수로 데이터를 next, next하면서 데이터가 있는 만큼 실행가능
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String id = rs.getString(1);
String name = rs.getString(2);
int age = rs.getInt(3);
System.out.println("번호: " + id);
System.out.println("이름: " + name);
System.out.println("나이: " + age);
System.out.println("-----------------");
}
반응형