Spring (65) 썸네일형 리스트형 ch4 05. 게시판 읽기, 쓰기, 삭제, 수정 기능 구현(1) 1. 기능별 URI 정의 작업 URI HTTP 메서드 설명 읽기 /board/read?bno=번호 GET 지정된 번호의 게시물을 보여준다. 삭제 /board/remove POST 게시물을 삭제한다. 쓰기 /board/write GET 게시물을 작성하기 위한 화면을 보여준다. /board/write POST 작성한 게시물을 저장한다. 수정 /board/modify?bno=번호 GET 게시물을 수정하기 위해 읽어온다. /board/modify POST 수정된 게시물을 저장한다. * URI (아래 두개를 통칭한다. URL과 거의 같은 의미. URL의 일부만 적을 땐 그냥 URI라고 한다.) URL - 리소스 경로(full경로) URN - 어떤 리소스에 유일한 이름을 붙임 2. 게시물 읽기 기능의 구현 - bo.. ch4 04. 게시판 목록 만들기와 페이징 - TDD (2) [BoardController] package com.fastcampus.ch4.controller; import com.fastcampus.ch4.domain.*; import com.fastcampus.ch4.service.*; import org.springframework.beans.factory.annotation.*; import org.springframework.stereotype.*; import org.springframework.ui.*; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.mvc.support.*; import javax.servlet.http.*; import.. ch4 03. 게시판 목록 만들기와 페이징 - TDD (1) 1. 게시물 목록 페이징 화면에 현재 페이지 정보가 필요하다. 2. LIMIT [offset, ] row_count(읽어올 row의 수) - 테이블에 들어있는 데이터를 페이지별로 가져오려면 select문의 LIMIT 사용 Limit 10, 10을 주면, 데이터 전체에서 10번째 행을 건너뛰고 11번째 행부터 row_cnt가 10이니 10개를 읽어온다. page offset 1 0 2 10 3 20 4 30 ... ... 만약 1페이지를 읽어온다면 offset은 0(첫번째 줄부터 읽어오니까) 2번째 페이지를 읽어온다면 offset은 10.. 이런식으로 가져와야한다. 그러면 어떤 페이지 값이 있을 때 offset을 어떻게 결정할까? page page-1 (page-1)*10 1 0 0 2 1 10 3 2 2.. ch04 02. Mybatis로 DAO 작성하기 1. BoardDao의 작성 1) DB테이블 생성 2) Mapper XML & DTO 작성 SELECT bno, title, content, writer, view_cnt, comment_cnt, reg_date FROM board WHERE bno = #{bno} DB테이블로부터 CRUD하기 위한 SQL문들을 작성해야한다. 3) DAO 인터페이스 작성 public interface BoardDao { BoardDto select(Integer bno) throws Exception; int delete(Integer bno) throws Exception; int insert(BoardDto bno) throws Exception; int update(BoardDto bno) throws Excepti.. ch4 01. MyBatis의 소개와 설정 1. MyBatis란? - SQL Mapping Framework - Easy & Simple SQL Mapping이라는 말은 Java 코드와 SQL을 매핑해준다는 뜻이다. SQL을 별도 xml으로 분리해두고, Java 코드에서 xml에 있는 SQL을 간단한 코드로 사용할 수 있게 되어있어서 쉽고 심플. - 자바 코드에서 SQL문을 분리해서 관리 - 매개변수 설정과 쿼리 결과를 읽어오는 코드를 제거 - 작성할 코드가 줄어서 생산성 향상 & 유지 보수 편리 SQL과 Java코드가 한 소스 파일에 같이 섞여 있다. 이걸 MyBatis를 이용하면 분리할 수 있다. INSERT INTO user_info VALUES ( #{id}, #{pwd}, #{name}, #{email}, #{birth}, #{sns},.. ch3 21. 서비스 계층의 분리와 @Transactional(3) package com.fastcampus.ch3; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.stereotype.Service; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionStatus; .. ch3 20. 서비스 계층의 분리와 @Transactional(2) - TxManager를 직접 생성하지 않고 주입받아서 처리해보자. 해당 코드를 root-context.xml에 넣어준다. TxManager를 빈으로 넣어준것이다. TxManager를 생성하는 문장 대신 위에 선언해준 후 테스트를 돌려도 테스트가 통과한다면 잘 설정한 것이다. 테스트도 통과하고 데이터도 잘 주입되었다. - 새로운 테이블 생성 create table b1 select * from a1 where false; # 테이블만 생성 create table b1 select * from a1; # 테이블 생성 & 데이터 복사 데이터를 복사한 테이블을 생성했다. - A1Dao 클래스를 복사해서 B1Dao 클래스와 TxService 클래스 생성. -> 강의대로 했는데.. 커넥션 생성도 안되고 테이블에 데.. ch3 19. 서비스 계층의 분리와 @Transactional(1) 보호되어 있는 글입니다. 이전 1 2 3 4 5 ··· 9 다음