Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자바스크립트기초
- 웹
- react
- 구글캘린더api
- javaspring
- 자바스크립트
- 자바스크립트기초문법
- 리액트초기세팅
- 구글 oauth
- Javascript
- java
- 전자정부 서버세팅
- HTML
- 처음만나는자바스크립트
- 기초 코딩
- Spring Boot
- 코딩
- 리액트세팅
- springboot
- mybatis
- 웹앱
- 리액트프로젝트세팅
- 기초코딩
- CSS
- js
- 자바스크립트 기초
- 자바
- 스프링부트
- spring
- 마이바티스
Archives
- Today
- Total
인생 디벨로퍼
[Bank App] 8강 계좌생성하기 본문
728x90
Dto 만들기
package shop.mtcoding.bankapp.dto.account;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class AccountSaveReqDto {
private String number;
private String password;
}
Controller
@Autowired
private HttpSession session;
@PostMapping("/account")
public String save(AccountSaveReqDto accountSaveReqDto) {
User principal = (User) session.getAttribute("principal");
if (principal == null) {
throw new CustomException("로그인이 필요한 서비스입니다.", HttpStatus.UNAUTHORIZED);
}
if (accountSaveReqDto.getNumber() == null ||
accountSaveReqDto.getNumber().isEmpty()) {
throw new CustomException("number를 입력해주세요", HttpStatus.BAD_REQUEST);
}
if (accountSaveReqDto.getPassword() == null ||
accountSaveReqDto.getPassword().isEmpty()) {
throw new CustomException("password를 입력해주세요", HttpStatus.BAD_REQUEST);
}
// 서비스에 계좌생성() 호출
return "redirect:/";
}
AccountSaveReqDto -> Account 모델로 변환
package shop.mtcoding.bankapp.dto.account;
import lombok.Getter;
import lombok.Setter;
import shop.mtcoding.bankapp.model.account.Account;
@Getter
@Setter
public class AccountSaveReqDto {
private String number;
private String password;
public Account toModel(int principalId) {
Account account = new Account();
account.setNumber(number);
account.setPassword(password);
account.setUserId(principalId);
account.setBalance(1000L);
return account;
}
}
service 에서 toModel 을 생성.(toEntity)
현재 전달해야 할 데이터 AccountSaveReqDto + principalId 를 한번에 전달.
Service
package shop.mtcoding.bankapp.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import shop.mtcoding.bankapp.dto.account.AccountSaveReqDto;
import shop.mtcoding.bankapp.model.account.Account;
import shop.mtcoding.bankapp.model.account.AccountRepository;
@Service
public class AccountService {
@Autowired
private AccountRepository accountRepository;
@Transactional
public void 계좌생성(AccountSaveReqDto accountSaveReqDto, int principalId) {
Account account = accountSaveReqDto.toModel(principalId);
accountRepository.insert(account);
}
}
jsp 수정
대충 복붙해둔 jsp. form 테그와 name 값 수정.
결과
로그인 되지 않았을때,
로그인후 list 를 만들지 않아, 메인에는 안나옴.
h2 console로 확인해보자
insert 성공적!
728x90
'Project > 개인 Project - Bank App' 카테고리의 다른 글
[Bank App] 10강 출금하기 (0) | 2023.06.16 |
---|---|
[Bank App] 9강 계좌목록보기 (1) | 2023.06.16 |
[Bank App] 7강 로그인 만들기 (0) | 2023.06.14 |
[Bank App] 6강 회원가입 만들기 (0) | 2023.06.10 |
[Bank App] 5강 익셉션 핸들러 만들기 (0) | 2023.06.10 |