2016년 1월 4일 월요일
오라클버전 P64- 실습용 사용자 계정 추가
SQL Developer를 이용해서 오라클 DB에 연결이 되었다면 다음 작업은 실습에 사용할 사용자의 계정을 생성하는 것입니다.
1. SQL Developer 화면에서 '다른 사용자'를 선택합니다.
2. 사용자의 계정과 패스워드를 지정합니다(아래의 화면은 'zerock'이라는 계정을 추가하고 있습니다).
테이블 스페이스는 기본적으로 'USERS'를 지정합니다.
3. '부여된 롤' 탭을 선택해서 'CONNECT'와 'DBA'를 선택해 줍니다.
이후 적용버튼을 눌러서 설정을 완료합니다.
4. 사용자의 계정이 생성된 후에는 'SYSTEM'계정으로 연결된 화면을 종료시키고, 방금 전에 생성한 'zerock'계정으로 연결을 시도합니다.
오라클버전- P58 SQL Developer 설치
MySQL과 달리 오라클의 경우 SQL을 편집, 실행해 볼 수 있는 별도의 SQLEditor가 존재하기는 합니다(SQL Plus)만 이에 대한 설정은 복잡하기 때문에 외부에서 사용하기 위해서는 무료로 제공되는 SQL Developer를 이용하는 것이 편리합니다.
1. 오라클 사이트에서 SQL Developer를 다운로드 합니다(http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html) .
SQLDeveloper의 경우 JDK가 포함된 버전이 있으므로, JDK가 설치된 경우라면 JDK가 포함되지 않은 버전을 받아서 사용할 수도 있습니다.
2. SQLDeveloper를 다운로드 받고 압축을 해제하면 모든 설치의 과정은 완료됩니다.
3. SQLDeveloper의 최초 실행시에는 JDK의 설치 경로를 물어볼 수 있습니다. 이 경우 JDK가 설치된 폴더까지만 지정하면 됩니다. 별도의 설정이 없었을 경우 C:\Program Files\Java\JDK... 경로가 될 것입니다.
4. SQL Developer의 추가적인 설정을 무시하고, 오라클 설치시에 기억해 둔 아이디와 패스워드를 이용해서 SQL Developer에서 연결을 진행합니다.
이 때 사용자의 이름은 'system' 계정으로 지정하고, 비밀번호는 설치시에 설정한 패스워드를 입력해 줍니다.
화면 아래쪽의 SID는 반드시 'XE' 로 지정되어야 합니다(대소문자의 구분은 없음).
하단의 '테스트'를 이용해서 오라클에 제대로 연결되는지를 확인합니다.
만일 현재 머신이 아닌 네트워크를 통해서 연결하는 경우에는 반드시 '호스트 이름'과 '포트'를 확인해 주어야 합니다.
초기에 많이 실수 하는 부분이 주로 '방화벽' 설정을 하지 않고, 연결을 시도하는 경우입니다. 방화벽에서 1521번 포트가 제대로 허용되지 않으면 원격에서의 연결이 안될 수 있으므로 반드시 확인해 주어야 합니다.
오라클버전 P58 예제를 위한 Oracle의 설정과 스프링 테스트
3.1 Oracle XE의 설치
오라클 데이터베이스의 경우 Enterprise Edition, Standard Edition, Personal Edition, Express Edition이 존재합니다.
각 에디션 중에 가장 간단하게 사용할 수 있는 버전은 Express Edition입니다.
오라클(www.oracle.com)사이트를 방문합니다.
상단 메뉴의 downloads를 이용해서 Express Edition을 찾습니다.
Express Edition(http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html)을 선택해서 다운로드 합니다.
다운 받은 파일의 압축을 풀면 setup.exe파일이 존재하게 되는데, 이를 이용해서 설치과정을 진행합니다.
설치에는 크게 '데이터베이스의 설치'와 '데이터베이스 인스턴스의 설치'과정으로 이루어 집니다.
설치 과정중에서 가장 중요한 것은 위의 그림에서 보듯이 관리자 계정의 패스워드입니다. 패스워드를 분실할 경우 필요한 계정을 생성할 수 없으므로 반드시 기억해야만 합니다.
2015년 11월 25일 수요일
오라클 버전 지원
안녕하세요.. 구멍가게 코딩단입니다.
갑자기 날씨가 겨울이 되었네요..
지난 8월 '코드로 배우는 스프링'의 출간 후 벌써 100일의 시간이 지났습니다.
코드로 배우는 스프링의 오라클 버전에 대한 문의가 많아서 다음과 같이 결정 사항을 알려드리도록 합니다.
* 오라클 버전으로 새로운 책은 아직 결정된 적이 없습니다.
* 현재 MySQL로 처리된 데이터베이스를 오라클 버전(11g)로 블로그를 통해서만 수정합니다.
* 블로그를 통해서 도서의 특정 페이지의 MySQL의 부분을 오라클로 변경해서 블로그에 게시합니다.
* 블로그에 게시된 내용은 별도의 워드 파일로 제공해서 필요하신 분들이 인쇄해서 원래의 도서와 같이 사용할 수 있도록 제공합니다.
--------------------------------------------------------------------------------------------------
오라클 버전 제작 일정
오라클 버전의 갱신은 12월 10일 이후 진행하여, 12월 31일 이전까지 완료하는 것을 목표로 합니다.
2015년 11월 1일 일요일
@ModelAttribute에 대한 짧은 이야기
스프링 MVC에서 사용되는 @ModelAttribute 애노테이션은 말 그대로 객체를 모델의 속성으로 자동으로 지정하는 역할을 하게 됩니다. 이 기능을 이용하면 파라미터로 수집된 객체를 다시 모델로 처리해야하는 번거로운 과정을 줄일 수 있습니다.
일반적으로 컨트롤러에서는 다음과 같은 패턴의 작업이 이루어 집니다.
1) 전달받은 파라미터를 이용해서 결과 데이터를 만들어서 화면에 결과 데이터만을 전송하는 경우
2) 전달받은 파라미터를 이용해서 처리한 결과 데이터와 더불어 입력시에 사용한 파라미터를 다시 전송하는 경우
1)의 경우에는 결과 페이지로 새롭게 생성된 결과를 전송하기 때문에 굳이 @ModelAttribute를 이용하지 않아도 관계 없습니다.
반면에 2)의 경우는 만들어진 결과 뿐이 아니라, 입력된 값도 객체로 처리해서 재사용하는 경우입니다.
간단한 클래스를 이용해서 예제를 만들어 보도록 합니다.
Sample클래스는 id,pw의 속성과 price라는 속성을 가지고 있습니다.
컨트롤러에서 아래와 같은 메소드를 작성해 주었습니다.
samlePost( ) 메소드의 경우는 별도의 Model객체를 사용하지 않지만, @ModelAttribute를 이용해서 자동으로 모델로 처리되고, setPrice( )를 이용해서 추가적인 정보를 처리하고 있습니다.
JSP에서는 EL을 이용해서 간단히 처리할 수 있습니다.
@ModelAttribute는 이와 같이 Request로 전달된 데이터를 가공하는 데 있어서 좀 더 편리한 수단을 제공합니다.
PART 2에서의 게시판 처리 부분에 @ModelAttribute를 이용하는 부분은 아래와 같습니다.
라인 101에 선언된 listAll( )의 경우는 @ModelAttribute가 없는 상태입니다. listAll( )의 결과 페이지 역시 아래와 같이 Criteria를 사용하지 않고 있습니다.
라인 108의 listPage( )의 경우는 조금 얘기가 다릅니다. 라인 109에서 Criteria를 @ModelAttribute를 이용해서 cri라는 이름으로 저장했고,
라인 115에서 pageMaker.setCri( )를 통해서 저장해서 엄밀히 말해서 2중으로 결과 데이터로 전송하고 있습니다.
JSP에서는 아래의 코드를 이용하고 있습니다.
이 경우 PageMaker객체의 내부에 있는 Criteria객체를 이용하고 있기 때문에 @ModelAttribute로 저장한 cri는 사용하고 있지 않습니다.
굳이 Criteria를 2중으로 JSP로 전송한 이유는 사실 페이징 처리가 없는 무한 스크롤 페이징 처리를 고려한 것입니다.
즉 무한 스크롤에서는 페이징 처리는 없지만, 페이지에 대한 정보는 유지해야 하기 때문에 Criteria를 JSP로 전송하는 것이 좋습니다.
반면에 페이지 처리는 PageMaker만을 이용해서만 모든 것이 가능한 것이 좋다고 생각합니다.
따라서 Criteria를 @ModelAttribute로도 전송하고, PageMaker내부로도 저장해서 전송하는 형태가 되었습니다.
2015년 10월 31일 토요일
오라클의 scott계정 테이블 스크립트
CREATE TABLE DEPT
(DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
DNAME VARCHAR2(14) ,
LOC VARCHAR2(13) ) ;
CREATE TABLE EMP
(EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT);
INSERT INTO DEPT VALUES
(10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES
(30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES
(40,'OPERATIONS','BOSTON');
INSERT INTO EMP VALUES
(7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);
INSERT INTO EMP VALUES
(7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
INSERT INTO EMP VALUES
(7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
INSERT INTO EMP VALUES
(7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);
INSERT INTO EMP VALUES
(7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
INSERT INTO EMP VALUES
(7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);
INSERT INTO EMP VALUES
(7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);
INSERT INTO EMP VALUES
(7788,'SCOTT','ANALYST',7566,to_date('13-JUL-87')-85,3000,NULL,20);
INSERT INTO EMP VALUES
(7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
INSERT INTO EMP VALUES
(7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);
INSERT INTO EMP VALUES
(7876,'ADAMS','CLERK',7788,to_date('13-JUL-87')-51,1100,NULL,20);
INSERT INTO EMP VALUES
(7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);
INSERT INTO EMP VALUES
(7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);
INSERT INTO EMP VALUES
(7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);
CREATE TABLE BONUS
(
ENAME VARCHAR2(10) ,
JOB VARCHAR2(9) ,
SAL NUMBER,
COMM NUMBER
) ;
CREATE TABLE SALGRADE
( GRADE NUMBER,
LOSAL NUMBER,
HISAL NUMBER );
INSERT INTO SALGRADE VALUES (1,700,1200);
INSERT INTO SALGRADE VALUES (2,1201,1400);
INSERT INTO SALGRADE VALUES (3,1401,2000);
INSERT INTO SALGRADE VALUES (4,2001,3000);
INSERT INTO SALGRADE VALUES (5,3001,9999);
COMMIT;
(DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
DNAME VARCHAR2(14) ,
LOC VARCHAR2(13) ) ;
CREATE TABLE EMP
(EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT);
INSERT INTO DEPT VALUES
(10,'ACCOUNTING','NEW YORK');
INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
INSERT INTO DEPT VALUES
(30,'SALES','CHICAGO');
INSERT INTO DEPT VALUES
(40,'OPERATIONS','BOSTON');
INSERT INTO EMP VALUES
(7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);
INSERT INTO EMP VALUES
(7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
INSERT INTO EMP VALUES
(7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
INSERT INTO EMP VALUES
(7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);
INSERT INTO EMP VALUES
(7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
INSERT INTO EMP VALUES
(7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);
INSERT INTO EMP VALUES
(7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);
INSERT INTO EMP VALUES
(7788,'SCOTT','ANALYST',7566,to_date('13-JUL-87')-85,3000,NULL,20);
INSERT INTO EMP VALUES
(7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
INSERT INTO EMP VALUES
(7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);
INSERT INTO EMP VALUES
(7876,'ADAMS','CLERK',7788,to_date('13-JUL-87')-51,1100,NULL,20);
INSERT INTO EMP VALUES
(7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);
INSERT INTO EMP VALUES
(7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);
INSERT INTO EMP VALUES
(7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);
CREATE TABLE BONUS
(
ENAME VARCHAR2(10) ,
JOB VARCHAR2(9) ,
SAL NUMBER,
COMM NUMBER
) ;
CREATE TABLE SALGRADE
( GRADE NUMBER,
LOSAL NUMBER,
HISAL NUMBER );
INSERT INTO SALGRADE VALUES (1,700,1200);
INSERT INTO SALGRADE VALUES (2,1201,1400);
INSERT INTO SALGRADE VALUES (3,1401,2000);
INSERT INTO SALGRADE VALUES (4,2001,3000);
INSERT INTO SALGRADE VALUES (5,3001,9999);
COMMIT;
2015년 10월 7일 수요일
피드 구독하기:
글 (Atom)