서버(오라클)<->클라이언트(웹에서는 브라우저, sqldeveloper)
오라클(무겁고 비용 ↑ , 보안이 좋음 - 대기업에서 주로 사용)
설치방법
OracleXE112
SQL (standard query language)
*오라클 깔고 -> 서비스(제어판)에서 확인
run SQL command Line으로 실행
*오라클에서는 대소문자 똑같이 인식한다.
[시스템 생성]
-ueser name: system , password:1234
-> mysql-installer-> sqldeveloper (클라이언트)
create user name identified by pass;
grant connect,resource,dba to name;
[user 유저생성 & 권한부여]
create user ex01 IDENTIFIED BY pass;
유저 생성해라 이름은 ex01, 비번은 pass
권한부여 - 연결, 리소스, 관리자권한
새로고침 -> 새 접속(+표시) -> 생성된 name유저에서 작성
실행 -> ctrl + enter
SQL문
create table 테이블명(필드,필드,필드); | 테이블 생성 **필드 작성은 필드명 - 타입 순으로 |
create sequence 시퀀스명 start with 시작번호increment by 증감값; | 시퀀스 생성(시작번호부터 자동으로 증감값만큼 수 증가) |
insert into 테이블명(필드,필드) values(데이터,데이터); | 테이블의 해당 필드에 데이터를 삽입 |
select * from 테이블명 where 조건절; | 조건에 해당되는 데이터 조회 |
update 테이블명 set 필드 = 바꿀값 where 조건절; | 테이블에서 조건에 해당되는 필드의 값을 수정 |
delete from테이블명 where 조건절; | 테이블에서 조건에 해당하는 데이터 삭제(테이블X) |
drop table 테이블명; | 해당 테이블 삭제(초기화) |
drop sequence 시퀀스명; | 해당 시퀀스 삭제(초기화) |
desc 테이블명 | 테이블 속성 |
** where절은 상황에 따라 써도 되고 안써도 됨(조건이 필요할 때만)
[테이블 속성]
- 필드에 primary key 작성해서 기본키 설정할 수 있다. (기본키는 중복되지 않는 고유값이며 필드 하나만 지정할 수 있다)
- default 값을 설정해줄 수 있다.
[데이터 조회 select]
- SQL문에서 제공해주는 sum, max, min, avg 함수를 사용하여 데이터를 연산할 수 있다.
- 데이터 연산은 해당 column(세로열)만 가능하며 row값은 직접 연산자를 넣어 처리해야한다.
[DB문자타입]
char / varchar
- char(3) : 세 글자 단위만 넣을 수 있다. (자릿수가 지정)
- varchar(20) : 쓰면 글자수 20이 멕시멈으로 작성 가능. 남은 자릿수는 공백처리
- 문자는 작은 따옴표 안에다 작성한다 -> '홍길동'
[조건문]
= 는 일치하는 거 검색
*은 전체 검색
like는 부분 검색 + % (와일드카드) 같이 사용한다.
like %'이' | 이로 끝나는 |
like '이'% | 이로 시작하는 |
like %'이'% | 이가 포함된 |
/*테이블 새로 생성*/
create table score(
no int primary key,
name varchar(200),
kor int default 50,
eng int default 0,
math int default 0
);
/*데이터 삽입*/
insert into score(no,name)
values(10,'홍길동');
insert into score(no,name)
values(20,'심청이');
/*조회*/
select score.*,kor+eng+math as tot,(kor+eng+math)/3 as avg from score;
select sum(kor) from score;
select avg(kor) from score;
select max(kor) from score;
select min(kor) from score;
/*테이블 삭제*/
drop table score;
/*수정*/
update score set kor=90, eng=90, math=90 where no=10;
update score set kor=100, eng=100, math=100 where no=20;
만드는 순서
1. oracle로 테이블 생성 -> 테이블이 있어야 자바로 데이터를 넣어줄 수 있다(테이블명으로 조회)
2. Java에서 DB관리하는 클래스 생성(Database.java)
- static리턴타입 Connection 타입의 con객체 생성 (오라클과 연결하기 위해 작성한다)
- static리턴 타입은 static{ } 안에다 작성해줘야 함.
import java.sql.*;
//db연결하기 위한 클래스
public class Database {
public static Connection con;
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","ex01","pass");
System.out.println("DB연결성공");
}catch(Exception e) {
System.out.println("DB연결오류"+e.toString());
}
}
}
3. 라이브러리 연결
프로젝트 선택 - 우클릭(특성) -> 자바 빌드경로 -> 라이브러리 -> modulepath -> 외부 JAR추가 선택 -> ojdbc6.jar 선택
*위치는 c드라이브 oracleex - > app -> oracle -> product -> 11.2.9 -> server -> jdbc -> lib에 있음
*JDBC - DB와 연결해 데이터를 주고받을 수 있도록 해주는 자바의 인터페이스
- Class.forName( )을 이용해 드라이버 로드 > DB에 접근하기 위해 드라이버 클래스를 로드
- DriverManager.getConnection( )으로 연결 > DB연결 위함
- Connection 인스턴스를 이용해 Statement객체 생성
- SQL을 담는 Statement 객체의 결과를 ResultSet 또는 int에 받아준다.
4. 필드 관리하는 클래스, 정보(메서드) 관리 클래스 DAO 생성
- DAO에는 Connection con = Database.con;으로 Java클래스에서 DB와 연결해 놓은 con객체를 불러와 사용한다.
'BE > Java [Servlet , Spring]' 카테고리의 다른 글
MVC구조 및 아파치 톰캣 서버를 사용한 JSP & Servlet 파일 생성 (0) | 2023.03.31 |
---|---|
Oracle(SQL Developer) & JAVA 상품 주문 관리 프로그램 리뷰 - 1. SQL문 (0) | 2023.01.24 |
JAVA 주소목록 출력 DAO + getter&setter메서드 (자바빈), 접근제한자 (0) | 2023.01.17 |
Java 차량 관리 프로그램 리뷰 - 클래스 생성하기(필드, 생성자, 메서드 오버로딩) (0) | 2023.01.09 |
Java 배열의 합계 및 최대&최소 값 구하기 (Sum, Max, Min) (0) | 2023.01.09 |