읽은 책 정리/코드로 배우는 스프링 웹 프로젝트 19

[Spring] MyBatis와 스프링에서 페이징 처리

페이징 처리를 위해서는 SQL을 실행할때 몇가지 파라미터가 필요하다는점이다. 페이징 처리를 위해서 필요한 파라미터는 1)페이지번호(pageNum) , 2) 한페이지당 몇개의 데이터(amount)를 보여줄지 페이지 번호와 몇개의 데이터가 필요한지 별도의 파라미터로 전달해도 되지만, 아예 이 데이터를 하나의 객체로 묶어서 전달하는 방식이 확정성이 더좋다. org.zerock.domain 패키지에 Criteria 클래스 작성. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 package org.zerock.domain; import lombok.Data; @Data public class Criteria { private int pageNum; //페이지 번호..

[Spring] 오라클 데이터 베이스 페이징처리

1 2 select /*+ INDEX_DESC(tbl_board pk_board) */ rownum rn, bno, title, content from tbl_board where bno > 0 cs * 일반적으로 페이징처리는 크게 번호를 이용하거나 '계속 보기'의 형태로 구현됨 12.1 order by의 문제 데이터 베이스를 이용할때 웹이나 애플리케이션에서 가장 신경 쓰는 부분은 1)빠르게 처리 되는것, 2)필요한 양만큼만 데이터를 가져오는것. 빠르게 동작하는 SQL을 위해서는 order by를 이용하는 작업을 최대한 자제, order by는 데이터가 많은경우 엄청난 성능의 저하를 가져오기때문. 1)데이터가 적은경우, 2)정렬을 빠르게 할수 있는 방법이 있는경우가 아니라면 주의 12.1.1 실행계획과 ..

[Spring] 프레젠테이션(웹)계층의 CRUD구현

*Controller 를 작성하기 전에는 반드시 현재 원하는 기능을 호출하는 방식에 대해 테이블로 정리한후 코드로 작성하자 TASK URL Method Parmeter From URL이동 전체 목록 /board/list GET 등록 처리 /board/register POST 모든항목 입력화면 필요 이동 조회 /board/read GET bno=123 삭제 처리 /board/modify POST bno 입력화면 필요 이동 수정처리 /board/remove POST 모든 항목 입력화면 필요 이동 controller 패키지는 servlet-context.xml에 기본적으로 설정되어 있으므로 별도의 설정필요 없음. controller에서 전체 목록을 가져오는 처리를 작성. Service타입의 객체와 연동해야하므..

[Spring] 스프링의 MVC의 Controller

스프링 컨트롤러는 다음과 같은 특징이 있다 1. jsp에서 쓰던 HttpServletRequest,HttpServletResponse를 거의 사용할필요없이 기능구현 2. 다양한 타입의 파라미터 처리, 다양한 타입의 리턴타입 사용가능 3. get,방식 post방식 등 전송방식에 대한 처리를 어노테이션 처리가능 4. 상속/인터페이스 방식 대신에 어노테이션만으로도 필요한 설정기능 컨트롤러 클래스에는 @Controller 어노테이션을 필수로 적용 / 그래야 자동으로 스프링의 객체로 등록됨 그 이유는 servlet-context.xml에 이라는 태그를 이용해 스캔해서 객체로 생성함. 1 2 3 4 5 6 7 8 9 10 11 package org.zerock.controller; import org.springf..

[Spring] 스프링 MVC의 기본구조

*스프링 프레임 워크란? 스프링 MVC는 스프링의 서브 프로젝트라는것. 스프링은 하나의 기능을 위해서 만들어진 프레임워크가 아니라 '코어'라고 할수 있는 프레임워크에 여러 서브 프로젝트를 결합해서 다양한 상황에 대처할수 있도록 개발됨 *프로젝트의 로딩구조 프로젝트 구동시 관여하는 xml은 web.xml, root-contex.xml, servlet-context.xml 파일임. web.xml은 Tomcat 구동과 관련된 설정이고 나머지 두파일은 스프링과 관련된 설정 프로젝트 구동은 web.xml에서 시작 에는 root-contex.xml 경로가 설정되있고 에는 스프링 mvc의 ContextLoaderListener가 등록되있음 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1..

[Spring] MyBatis와 스프링 연동

pom.xml 에 라이브러리 추가 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 org.mybatis mybatis 3.4.6 org.mybatis mybatis-spring 1.3.2 org.springframework spring-tx 5.0.7.RELEASE org.springframework spring-jdbc 5.0.7.RELEASE Colored by Color Scripter cs root-context.xml 설정추가 1 2 3 4 5 6 7 8 Colored by Color Scripter cs Mapper 설정 2가지 방법 - xml 인터페이스 방법이 간단해서 편하지만 길어지면 가독성이 안좋음..

[Spring] 스프링과 oracle Database연동

-오라클 설치 11g버전 (버전은 중요하지않음) -sql Developer 설치(Sql plus보다 편한 gui방식 툴) -계정생성 / 8080포트 변경(tomcat의 기본포트가 8080이기때문) -프로젝트 jdbc 연결 (오라클은 pom.xml에 등록해도 저작권?문제때문에 자동으로 다운이 안되기때문에 lib 폴더를 만들고 ojdbc8.jar를 넣어서 java balid path로 등록해주기! - JDBC 테스트코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 package org.zeorck.persistence; import static org.junit.Assert.fail; i..

[Spring] 스프링의 특징과 의존성주입

프레임 워크는 말그대로 '뼈대나 근간을 이루는 코드 들의 묶음' 이라고 할수 있음. 뼈대가 왜필요한지? - 개발자는 각개인 능력차이가 큰직종이고, 따라서 구성에 따라 프로젝트의 결과 역시 큰차이를 낳는다. 프레임 워크는 바로 이런 상황을 극복하기 위한 코드의 결과물 프레임워크를 이용한다는 의미는 프로그램의 기본흐름이나 구조를 정하고, 모든 팀원이 이 구조에 자신의 코드를 추가하는 방식으로 개발. 스프링의 주요특징 - POJO 기반의 구성 - 의존성주입(DI)를 통한 객체 간의 관계 구성 - AOP 지원 - 편리한 MVC 구조 - WAS의 종속적이지 않은 개발환경 스프링에서는 'ApplicationContext'라는 존재가 객체를 생성하고, 필요한 객체들을 주입하는 역할을 해주는 구조. 따라서 스프링을 이..

[Spring] 스프링 개발을 위한 준비

- JDK 1.8 버전설치 - STS 설치 및 프로젝트 생성(이클립스로 스프링 플러그인 설치로 사용가능) - Tomcat 설치 및 연동(8.x~9.0) - 오라클 DB, SQL Developer 설치 및 설정 - 스프링 프로젝트 생성 및 라이브러리 추가 - Mybatis 설정 / 스프링 MVC 개발 설정 기본적인 IDE 설치나 환경변수 설정 / UTF-8 설정등 많은 블로그가 많으니 다른 블로그를 참조. * 스프링 레거시 프로젝트 생성 -Spring Legacy Project - Spring MVC Project - 패키지명은 'com.popo.project' 같은 형식으로 지정 프로젝트를 최초로 생성하면 필요한 코드와 라이브러리를 다운로드함. 다운로드 하는 라이브러리들은 사용자 폴대내 '.m2' 라는 ..