![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Er9TB/btq4qFEC6nK/9LUlOy1pGObQT6YCIofX0k/img.png)
목표: 목록에서 이전 / 다음 구현하기 내부 프로그램부터 수정 /* 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객체가 page를 가지고 있는게 바람직하다. EXIT: while(true) { console.printNoticeList(); ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/LyMNk/btq4nOJSPIC/dUEY3oy6ZkjhUAiaLJaUj0/img.png)
목표: 목롤을 위한 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쿼리문을 만들수있다.
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/D0YDP/btq4bXNwflh/O9cQTxJTzGygeloJ10Tao0/img.png)
목표: 페이징 쿼리 이용 /* 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..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bcsjSy/btq3XsTTD8O/I3n7i0oHl5bK5HdMJHnse0/img.png)
목표 : 페이징을 위한 쿼리 만들기 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까지 순서대로 증가시킬 경우라 출력이 가능하지만,..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bmP56j/btq30Fd0d4j/FLsgLMDu79iJjlE57wXwDK/img.png)
목표 : 공지사항 메뉴 붙이기 /*NoticeConsole.java*/ package com.newlecture.app.console; import java.sql.SQLException; import java.util.List; import java.util.Scanner; import com.newlecture.app.entity.Notice; import com.newlecture.app.service.NoticeService; public class NoticeConsole { private NoticeService service; public NoticeConsole() { service = new NoticeService(); } /* 내용 UI*/ public void printNoticeL..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/H2Ke1/btq3UsG9Pk7/BN4b1jR87vkvCZT2izpgK1/img.png)
목표 : 콘솔을 이용한 사용자 인터페이스 만들기 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..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bXvKQ6/btq3VgTQwYG/Dedw8v9kD7ZMTJsCactcH1/img.png)
요청한 작업을 수행하는 중 오류 발생: IO 오류: The Network Adapter could not establish the connection (CONNECTION_ID=jHxZeyRjRwe0bH4CBvuaxg==) 업체 코드 17002 java에서 오류발생 로그인 시도실패로 보이기에 sql developer로 시도 오류발생 이유 : OravleXETNSListener 중지 해결방법 1. 서비스 확인 : 내컴퓨터 관리 -> 서비스 및 응용프로그램 -> 서비스 -> OracleOraDB18Home1TNSListener 중지: 사용으로 변경 -> 이후 문제 발생시 아래로 ↓ HOST값 일치 확인 listener.ora 파일 수정 위의 IP주소와 HOST의 주소를 동일하게 등록 tnsnames.ora ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bQ6IQ9/btq3S97bxdn/HMBhzkkopuHfqnJ3gJZLxK/img.png)
데이터 삭제 전 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..