나의 수업일지

인천 일보 아카데미 45일차 -1- 실습 / MySQL - DB / table 만들기

2023. 4. 25. 22:35
  • 새프로젝트 만들기

1. project name: library

2. base-package: com.icia.lib

 

  • 3. 주요 동작 및 파일

1. Class
     1. HomeController
         1. 기본주소 요청에 대해 index.jsp 출력


     2. BookController
         1. 도서 등록, 조회, 목록 출력 등을 위한 메서드 있음 


     3. BookService 
         1. Controller로 부터 호출되며 로직 처리


     4. BookDTO
          1. 번호(id), 제목(bookName), 출판사(bookPublisher), 저자(bookAuthor), 정가(bookPrice)

          정보를 담기 위한 필드 있음. 


        2. index.jsp
            1. save.jsp를 출력하기 위한 링크 있음(요청주소: /save)
            3. list.jsp를 출력하기 위한 버튼 있음(요청주소: /list)


        3. save.jsp
            1. 도서 등록을 위한 페이지 
            2. 제목(bookName), 출판사(bookPublisher), 저자(bookAuthor), 정가(bookPrice) 받음 
            3. 입력정보는 /save 로 post 방식으로 전달됨 
            4. 입력정보는 BookService의 save() 메서드에서 System.out으로 출력

 

 

 

Controller

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.stereotype.Controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;

@Controller
public class BookController {
    @Autowired // BookService 의존성 주입 (필드 주입)
    private BookService bookService;
    
    @PostMapping("/save")
    public String saveParam(@ModelAttribute BookDTO bookDTO){
    받은 정보의 파라미터를 @ModelAttribute를 사용하여 바로 객체에 담아줌
    
        bookService.save(bookDTO);
        담은 객체를 bookService의 save 메소드 매개변수로 전달
        
        return "index";
    }
}

 

 

BookService

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class BookService {
    @Autowired
    private BookRepository bookRepository;
    
    public void save(BookDTO bookDTO){
        System.out.println("bookDTO = " + bookDTO);
        매개 변수로 받은 DTO 객체를 soutp를 이용하여 출력함
    }
}

 

 

  • 수업 진행을 위한 MySQL - DB 와 table 만들기

 

 

MySQL 다운로드 및 설치 방법

 

 

인천 일보 아카데미 24일차 - mysql , 데이터베이스란? , SQL 문법 분류/용어 , mysql 계정만들기

mySQL 다운로드 링크 https://dev.mysql.com/downloads/installer/ MySQL :: Download MySQL Installer Select Operating System: Select Operating System… Microsoft Windows Select OS Version: All Windows (x86, 32-bit) Windows (x86, 32-bit), MSI Installer 8

guping.tistory.com

 

 

1. 새로운 계정 및 database 만들기
user: user_springframework
password: 1234
database: db_springframework
모든권한 부여함

 

create user user_springframework@localhost identified by '1234';
create user를 통해 계정과 비밀번호를 설정해줌
계정 뒤의 @localhost는 해당 사용자가 로컬 호스트(해당 MySQL 서버가 실행 중인 컴퓨터)에서만
접속할 수 있도록 지정하는 데 사용됨

create database db_springframework;
create database로 DB를 생성했습니다

grant all privileges on db_springframework.* to user_springframework@localhost;
grant로 권한을 부여합니다
all privileges로 모든 테이블에 대한 권한을 줍니다
on db_springframework 즉 , 해당 DB에서만 입니다
또 한번 @localhost를 작성함으로 MySQL서버가 열린 로컬에서만 접속 가능합니다

use mysql;
select user from user;
생성한 유저계정이 잘 만들어졌는지 확인했습니다

 

 

  • BookDTO객체로 받은 정보를 저장할 table 만들기

DB에 넘겨줄 때 객체로 가공하여 넘겨주기 때문에

table의 컬럼은 DTO의 필드와 같은 이름으로 설정해줍니다

 

use db_springframework;
앞에서 만든 DB를 열어줍니다

drop table if exists book_list;
drop if exsts를 사용하여 혹시나
이미 있는 테이블 이름을 사용하지는 않았는지 검수합니다

create table book_list(
id bigint auto_increment primary key,
bookName varchar(50) not null,
bookPublisher varchar(20),
bookAuthor varchar(20),
bookPrice int
);
create table을 사용하여 태이블을 만들어줍니다
각 컬럼의 이름과 타입을 설정해줍니다
id는 값을 넣지 않아도 자동으로 증가할 수 있도록 auto_increment를 사용합니다
또한 고유한 값이기 때문에 primary key로 지정해줍니다

'나의 수업일지' 카테고리의 다른 글

인천 일보 아카데미 46일차 -1- spring_framework / 수정 , 삭제 추가해보기  (0) 2023.04.26
인천 일보 아카데미 45일차 -2- DB와 연동해보기 / DB에 값 담기 / DB에 담은 값 list 출력 / DB에 담긴 특정 값만 출력  (0) 2023.04.26
인천 일보 아카데미 44일차 -2- ModelAttribute / 체크박스로 받은 값 담기 / @Service 알아보기 / 의존성 주입 - Autowired  (0) 2023.04.25
인천 일보 아카데미 44일차 -1- 실습  (0) 2023.04.24
인천 일보 아카데미 43일차 -1- 프로젝트 다시 만들기 / Model 알아보기 / Model - 객체를 출력 / Model - List를 출력  (0) 2023.04.23
'나의 수업일지' 카테고리의 다른 글
  • 인천 일보 아카데미 46일차 -1- spring_framework / 수정 , 삭제 추가해보기
  • 인천 일보 아카데미 45일차 -2- DB와 연동해보기 / DB에 값 담기 / DB에 담은 값 list 출력 / DB에 담긴 특정 값만 출력
  • 인천 일보 아카데미 44일차 -2- ModelAttribute / 체크박스로 받은 값 담기 / @Service 알아보기 / 의존성 주입 - Autowired
  • 인천 일보 아카데미 44일차 -1- 실습
GUPING
GUPING
안녕하세요 개발자를 꿈꾸는 GUPING 입니다
GUPING
개발자를 꿈꾸는 GUPING
GUPING
전체
오늘
어제
  • 분류 전체보기 (89)
    • 나의 수업일지 (88)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 페이징Controller
  • 여러사진프리뷰
  • PAGE
  • 파일 이름 가져오기
  • 버튼2가지이벤트
  • 버튼 이벤트 변경
  • 지식인
  • 파일이름가져오기
  • 네이버
  • 클래스 이름 변경
  • Ajax
  • 검색
  • 삭제
  • 개힘드렁
  • 틀만들기
  • 파일이름(다중)
  • 수정
  • 버튼 이벤트 함수 변경
  • 답변 채택
  • 로그인 경고문
  • realative
  • 로그인게시판
  • pagingAjax
  • 검색결과페이징
  • 업로드파일이름출력
  • 로그인form
  • 다중프리뷰
  • naver
  • Paging
  • 페이징

최근 댓글

최근 글

hELLO · Designed By 정상우.
GUPING
인천 일보 아카데미 45일차 -1- 실습 / MySQL - DB / table 만들기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.