목표: 목롤을 위한 View 생성하고 자바에서 활용 CREATE VIEW 사용 CREATE VIEW NOTICE_VIEW AS SELECT * FROM ( SELECT ROWNUM NUM, N.* FROM ( SELECT * FROM NOTICE ORDER BY REGDATE DESC ) N ) CREATE VIEW 를 사용해서 이전에 만들어 두었던 쿼리문을 하나의 테이블(NOTICE_VIEW)로 만들어둔다. 생성한 NOTICE_VIEW테이블로부터 정상적으로 값들이 출력된다. 자바에서 활용 할 수있도록 SQL문을 수정 CREATE VIEW를 이용하면 편리하고 간결한 SQL쿼리문을 만들수있다.
목표: 페이징 쿼리 이용 /* NoticeService.java */ package com.newlecture.app.service; import java.sql.Connection; import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import com.newlecture.app.entity.Notice; /* CRUD 서비스 목록을 반환하는 함수 */ publ..
목표 : 페이징을 위한 쿼리 만들기 Notice테이블 출력 SELECT * FROM NOTICE; 실행결과의 일련번호가 필요하다. 일렵번호를 ROWNUM을 사용해 출력 SELECT ROWNUM, NOTICE.* FROM NOTICE; 10줄만 출력을 위한 필터링 WHERE SELECT ROWNUM, NOTICE.* FROM NOTICE WHERE ROWNUM BETWEEN 1 AND 10; 2~10까지는 출력 불가. 이유 : rownum은 sql결과 셋에 순서를 부여하는 가상컬럼이다. fetch단계에서 추출하는 첫번째 row에 1을 부여하고, 이후 row가 추출될때마다 rownum의 값을 순차적으로 증가시킨다. 하지만 이 쿼리문에서는 rownum을 1-10까지 순서대로 증가시킬 경우라 출력이 가능하지만,..
목표 : SQL SELECT 쿼리 처리 순서를 파악한다. sqlbolt.com/lesson/select_queries_order_of_execution SQLBolt - Learn SQL - SQL Lesson 12: Order of execution of a Query Now that we have an idea of all the parts of a query, we can now talk about how they all fit together in the context of a complete query. Complete SELECT query SELECT DISTINCT column, AGG_FUNC(column_or_expression), … FROM mytable JOIN another_ta..
목표 : 콘솔을 이용한 사용자 인터페이스 만들기 Notice를 관리하기 위한 console class 생성(UI) 동작을 위한 program5 Class생성 program5.java /* program5.java */ package ex1; import java.sql.SQLException; import com.newlecture.app.console.NoticeConsole; public class program5 { /* 탑다운 방식 구현 */ public static void main(String[] args) throws ClassNotFoundException, SQLException { NoticeConsole console = new NoticeConsole(); console.printN..
데이터 삭제 전 NOTICE테이블의 id=6을 삭제할 예정 데이터 삭제 DELETE 테이블 명 WHERE 연산; DELETE notice WHERE id=?; 자바 삭제 코드 package ex1; import java.sql.Connection; import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Program4 { public static void main(String[] args) throws ClassNotFoundExce..
Program2.java를 복사해서 Program3.java파일을 생성 후 실습 데이터 수정 전 자바 수정 코드(오류포함) package ex1; import java.sql.Connection; import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Program3 { public static void main(String[] args) throws ClassNotFoundException, SQLException { /*title..
Program.java파일을 복사해서 Program2.java 파일을 생성하고 실습을 진행 Program2.java 수정 전 코드 package ex1; import java.sql.Connection; import java.sql.Date; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Program2 { public static void main(String[] args) throws ClassNotFoundException, SQLException { String url = "jdbc:oracle:thin:@192.16..