본문 바로가기
728x90
반응형

DB/Code11

CODE [day_07] DB / 10. JDBC - JOIN 활용 예제 SQL ERD K_EMPLOYEE TABLE DEPARTMENT TABLE empno가 1에 해당하는 ename, sal, deptno, dname, loc, tel을 조회하여 출력 SELECTe.ename, e.sal, d.deptno, d.dname, d.loc, d.tel FROMk_employee e, department d WHEREe.deptno = d.deptno and e.empno = 1; Java JDBC UML Diagram TestDAO class (main class) TestJoin 기능 1. findEmpAndDeptInfo 메서드 (input - string empno /output - Employee e) k_employee table과 department 테이블을 조인(결.. 2020. 8. 14.
CODE [day_06] DB / 09. JDBC - SQL GROUP BY, DISTINCT 활용 예제 SQL EMPLOYEE TABLE 1. JOB 컬럼을 기준으로 그룹화하여, JOB, 사원수, 평균월급(반올림) 내림차순으로 조회해보기 * 반올림 함수 : ROUND ( [column name] , [몇번째 자리수까지 표시할것인지] ) SELECTjob, COUNT(*) AS 사원수, ROUND(AVG(salary), 2) AS 평균월급 FROMemployee GROUP BYjob ORDER BY평균월급 DESC; 2. 1번 문제에 JOB 별 평균 월급이 500을 초과하는 JOB들 조회하는 것으로 그룹 조회 조건을 추가 (HAVING절) SELECTjob, COUNT(*) AS 사원수, ROUND(AVG(salary), 2) AS 평균월급 FROMemployee GROUP BYjob HAVINGAVG(sa.. 2020. 8. 13.
CODE [day_05] DB / 08_2. Transaction (COMMIT, ROLLBACK) 적용한 예제 - 신용카드 발급 시에 포인트를 지급하기 트랜잭션 처리를 통해, 발생될 수 있는 문제를 해결한 예제 *SQL TABLE의 정보들은 모두 지워주고, 기존 테이블 틀만 재활용한다. JAVA JDBC TestDAO class (main class) 트랜잭션 처리를 통해 모든 작업이 정상적으로 수행되었을 때 COMMIT, 문제 발생 시 ROLLBACK 처리를 한 예제 Test 1 : 정상적인 데이터를 입력해 commit 확인 Test 2 : point 등록 시 고의로 오류를 발생시켜 rollback이 되는지 확인 /TestTransaction2.java package test; import model.CardDAO2; public class TestTransaction2 { public static void main(String[] args) { tr.. 2020. 8. 12.
CODE [day_05] DB / 08_1. Transaction (COMMIT, ROLLBACK) 필요성을 확인하는 예제 - 신용카드 발급 시에 포인트를 지급하기 트랜잭션 처리가 되지 않았을 때, 발생되는 문제를 확인하는 예제 SQL CARD TABLE 생성 CREATE TABLE card( idVARCHAR2(100)PRIMARY KEY, nameVARCHAR2(100)NOT NULL ); POINT TABLE 생성 CREATE TABLE point( idVARCHAR2(100)PRIMARY KEY, point_typeVARCHAR2(100)NOT NULL, pointNUMBERNOT NULL ); JAVA JDBC TestDAO class (main class) 카드 테이블에 카드 정보가 insert되고, 포인트 테이블에 포인트 정보가 insert될 때, 문제가 발생되었을 경우 포인트 정보는 등록되지 않고 , 카드 정보만 존재하는 경우를 만들어 본다. --> .. 2020. 8. 12.
CODE [day_05] DB / 07. 계좌 개설 및 입출금, 계좌 이체 프로그램 만들기 - JDBC, SELECT(WHERE, COUNT), INSERT, UPDATE 계좌 개설 및 입출금, 계좌 이체 프로그램 만드는 예제 ** 요구사항 ** 사용자는 계좌 개설이 가능하다. 계좌 계설 시 --> 1. 계좌번호, 계좌주명, 비밀번호, 잔액정보가 저장되어야 한다 --> 2. 최초 계좌 개설 시에는 초기 납입액 1000원 이상이 되어야 한다 --> 3. 계좌번호는 유일해야 하고, 시스템에서 자동 발급되도록 관리한다 (primary key, sequence) 잔액 확인 시 --> 계좌번호가 존재해야 하고, 비밀번호가 일치해야 한다. 입금액, 출금액, 계좌 이체액은 모두 0원을 초과해야 한다. 입금 시에는 --> 계좌번호, 비밀번호가 일치해야 한다. 출금 시에는 --> 계좌번호, 비밀번호, 잔액 확인 절차가 필요하다. 계좌 이체 시에는 --> 1. 송금자 및 수금자의 계좌가 존.. 2020. 8. 12.
CODE [day_04] DB / 06. SEQUENCE 시퀀스 - NOCACHE(SQL 쿼리, java JDBC) + nextval-currval 활용 캐쉬 기능을 사용하지 않는 옵션인 NOCACHE 옵션을 활용한 SEQUENCE 예제 SQL MOVIE TABLE 생성 CREATE TABLE movie( idNUMBERPRIMARY KEY, titleVARCHAR2(100)NOT NULL, attendanceNUMBERDEFAULT 0); movie_seq SEQUENCE 생성 : cache기능을 사용하지 않겠다는 옵션을 할당 -- > 비정상 종료 시에도 번호가 이어지도록 CREATE SEQUENCE movie_seq NOCACHE; INSERT INSERT INTO movie(id, title) VALUES (movie_seq.nextval, '8월의 크리스마스'); SELECT SELECT* FROMmovie; [ MOVIE TABLE ] JAVA .. 2020. 8. 11.
CODE [day_03] DB / 05. SEQUENCE 시퀀스(SQL 쿼리, java JDBC) SQL GUESTBOOK Table 생성 CREATE TABLE guestbook( guestbook_noNUMBERPRIMARY KEY, titleVARCHAR2(100)NOT NULL, contentVARCHAR2(1000) NOT NULL ); guestbook_seq Sequence 생성 CREATE SEQUENCE guestbook_seq; INSERT INSERT INTO guestbook(guestbook_no, title, content) VALUES(guestbook_seq.nextval, '즐거운 8월', '열공'); JAVA JDBC TestDAO class (main class) 1. 새로운 DB 등록 - register method 2. 등록된 DB 출력 (최근 등록된 순으로 출력.. 2020. 8. 10.
CODE [day_03] DB / 04. JDBC - SELECT, COUNT 함수, INSERT, ORDER BY, SELECT에 조건주기 (StringBulider 활용) Test (main class) 1. Primary Key인 product id로 상품정보를 검색하는 예제 /TestTestProductDAO1.java package test; import model.ProductDAO; import model.ProductDTO; public class TestProductDAO1 { public static void main(String[] args) { try { ProductDAO dao = new ProductDAO(); String id = "1"; // dto ok id = "a"; // dto = null ProductDTO dto = dao.findProductById(id); if (dto == null) System.out.println(id + ".. 2020. 8. 10.
CODE [day_02] DB / 03. JDBC - DAO, VO class 활용 [ class 종류 ] VO : Value Object or DTO : Data Transfer Object - 정보 저장을 위한 Class - 데이터베이스의 Table과 연관됨 ex) MemberDTO DAO : Data Access Object - Repository - 데이터베이스 연동 로직을 가지고있는 객체 main class 1. MemberDAO()의 findMemberById(id)를 구현해보는 예제 - primary key인 id를 이용해 MEMBER TABLE의 회원정보가 전달하는 id에 부합되면, MemberVO 객체를 반환받고, ID에 해당하는 회원이 없으면 null을 반환한다. /TestMemberDAO.java package test; import java.sql.SQLExcept.. 2020. 8. 7.
728x90
반응형