개발/교육

(Java)15일차

kakk789 2022. 4. 15. 16:59

데이터베이스 (Database)

다수의 사람들이 공유하여사용 할 목적으로 통합 관리되는 데이터들의 모임

오라클 설치 후 접근 방법

CMD 창 - sqlplus 입력

데이터 베이스를 사용할 수 있는 "사용자 계정"을 만들기

create user 사용자이름 identified by 암호;

권한 주기 (Grant)

grant 권한명, ----- to 사용자이름;

grant connect, resource, dba to 사용자 이름;
  1. connect : 사용자로 하여금 접근할 수 있도록 하는 권한
  2. resource : 트리거, 시퀀스, 타입, 프로시저, 테이블 등을 사용 할 수 있도록 하는 권한, 이게 없으면 테이블 생성 불가능.
  3. dba : 해당 사용자가 소유한 DB를 관리할 수 있고, 작성 / 변경 / 제거 등을 할 수 있는 모든 권한\

테이블 만들기 (Create)

create table 테이블이름 (속성이름 자료형, ---------)
create table member(id, pwd, name);

오라클에서 자료형 

  1. char : 고정형 (2000바이트)
  2. varchar2 = varchar : 가변 문자 입력  (4000바이트)
  3. 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
    1. 리스너 실행 중인지 확인

  1. tnsnames.ora, listener.ora 파일의 host 가 현재 IP인지 확인
  2. 재기동

ORA-12505 에러 발생 

  1. tnsnames.ora, listener.ora 의 host 이름을 컴퓨터 이름으로 해볼 것
  2. 재기동

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("-----------------");
			}

 

 

 

참고 : https://positivemh.tistory.com/519

반응형