DTO
package edu.global.dto;
import java.sql.Timestamp;
//이름 널? 유형
//-------- -------- ------------
//EMPNO NOT NULL NUMBER(4)
//ENAME VARCHAR2(10)
//JOB VARCHAR2(9)
//MGR NUMBER(4)
//HIREDATE DATE
//SAL NUMBER(7,2)
//COMM NUMBER(7,2)
//DEPTNO NUMBER(2)
public class Dto {
private int empno;
private String ename;
private String job;
private int mgr;
private Timestamp hiredate;
private int sal;
private int comm;
private int deptno;
public Dto() {}
public int getEmpno() {
return empno;
}
public void setEmpno(int empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public int getMgr() {
return mgr;
}
public void setMgr(int mgr) {
this.mgr = mgr;
}
public Timestamp getHiredate() {
return hiredate;
}
public void setHiredate(Timestamp hiredate) {
this.hiredate = hiredate;
}
public int getSal() {
return sal;
}
public void setSal(int sal) {
this.sal = sal;
}
public int getComm() {
return comm;
}
public void setComm(int comm) {
this.comm = comm;
}
public int getDeptno() {
return deptno;
}
public void setDeptno(int deptno) {
this.deptno = deptno;
}
}
DAO
package edu.global.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import edu.global.dto.Dto;
public class Dao {
private String driver = "oracle.jdbc.driver.OracleDriver";
private String url = "jdbc:oracle:thin:@localhost:1521:xe";
private String user = "scott";
private String pwd = "tiger";
public Dao() {
try {
Class.forName(driver);
System.out.println("드라이버 검색 성공");
} catch (Exception e) {
e.printStackTrace();
}
}
public List<Dto> getEmps(){
List<Dto> emps = new ArrayList<>();
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "select * from emp";
try {
connection = DriverManager.getConnection(url,user,pwd);
pstmt = connection.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()) {
Dto emp = new Dto();
emp.setComm(rs.getInt("comm"));
emp.setDeptno(rs.getInt("deptno"));
emp.setEmpno(rs.getInt("empno"));
emp.setEname(rs.getString("ename"));
emp.setHiredate(rs.getTimestamp("hiredate"));
emp.setJob(rs.getString("job"));
emp.setMgr(rs.getInt("mgr"));
emp.setSal(rs.getInt("sal"));
}
} catch (Exception e) {
// TODO: handle exception
}
return emps;
}
}
Main
package edu.global.Dmain;
import java.util.List;
import edu.global.dao.Dao;
import edu.global.dto.Dto;
public class DMain {
public static void main(String[] args) {
Dao dao = new Dao();
List<Dto> emps = dao.getEmps();
for (Dto emp : emps) {
System.out.println("사원번호 " + emp.getEmpno()+" ");
System.out.println("사원이름 " + emp.getEname()+" ");
System.out.println("입사일" + emp.getHiredate()+" ");
System.out.println("업무" + emp.getJob()+" ");
System.out.println("담당 매니저"+emp.getMgr()+" ");
System.out.println("업무번호"+emp.getDeptno()+" ");
System.out.println("봉급" + emp.getSal());
System.out.println("보너스"+emp.getComm());
}
}
}
데이터베이스에 연결하는데 사용됨
SQL문을 실행하는데 사용됨
SQL문의 실행 결과를 저장하는데 사용됨
데이터를 전송하는 데 사용되는 객체
데이터베이스에 접근하고 데이터를 조작하는 데 사용되는 객체
테이블 구조를 정의하는 create table (자동 커밋)
예) create, alter, drop, rename, truncate
데이터베이스 사용자의 권한을 제어하는 데 사용되는 SQL 언어
데이터베이스 테이블의 데이터를 조작하는 데 사용되는 SQL 언어
예) insert, delete, update, select
CREATE TABLE DEPT03 AS SELECT * FROM DEPT WHERE 1=0;
1=0은 false 라서 안나온다
(아무것도 보여주지 않고 구조만 복사함)
or와 같음
and와 같음
-- 연봉을 3000이상 받는 사원이 소속된 부서와 동일한 부서에서 근무하는 사원들의 정보를 출력하는 쿼리문
select ename, sal, deptno
from emp
where deptno in (select distinct deptno from emp where sal >= 3000);
-- 부서 번호가 30번인 사원들의 급여 중 가장 낮은 값(800)보다 높은 급여를 받는 사원의 이름, 급여를 출력하는 쿼리문
select *
from emp
where deptno = 30 and sal > (select min(sal) from emp);
--30번 소속 사원들 중에서 급여를 가장 많이 받는 사원보다 더 많은 급여를 받는 사람의 이름과 급여를 출력하는 쿼리문
select *
from emp
where sal > all (select sal from emp where deptno = 30);
데이터베이스 관리 시스템(DBMS)에 저장된 데이터와
데이터의 구조에 대한 정보를 저장하는 데이터베이스
(유저가 변경 불가)
SQL
다중행 서브 쿼리
오라클은 대소문자 구분x
char20은 20개가 고정됨(주민번호)
varchar20은 1개 넣고 19개를 잡음(게시판 2000자)
varchar1은 쓰면 안되고 varchar2를 써야함
DDL (테이블 구조를 정의하는 create table)
은행권에서 비상사태에 대비
자바 오라클 연결은
"프로젝트에서 우클릭 -> properties -> Java Build Path -> Libraries -> Add External jar를 눌러서 해당 jdk버전에 맞는 ojdbc"