Light Purple Pointer
스프링부트에서 JSP 설정
·
BACKEND/SpringBoot
spring-boot-starter-web 에 포함된 tomcat 은 JSP 엔진을 포함하고 있지 않다. jsp 파일은 Springboot 의 templates 폴더안에서 작동하지 않는다. 그래서 jsp를 적용하기 위해서는 아래와 같은 의존성을 추가해야한다. https://blog.naver.com/drv982/222925667199 1.pom.xml에서 라이브러리 추가한다. 2.application.properties에서 주소 적어준다 3.컨트롤러로 실행가능하도록 한다. javax.servlet jstl org.apache.tomcat.embed tomcat-embed-jasper #JSP VIEW 경로 spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view...
스프링 부트 - MyBatis 2 / xml 매핑
·
BACKEND/SpringBoot
. 두 번째 방법 장문의 sql문을 작성할 때는 xml로도 사용 가능하다. DROP TABLE IF EXISTS Products; CREATE TABLE Products ( prod_id INT PRIMARY KEY AUTO_INCREMENT, prod_name VARCHAR(255) NOT NULL, prod_price INT NOT NULL ); INSERT INTO Products (prod_name, prod_price) values ('베베숲 물티슈', 2700); INSERT INTO Products (prod_name, prod_price) values ('여름 토퍼', 35180); INSERT INTO Products (prod_name, prod_price) values ('페이크 삭스..
스프링 부트 - MyBatis 및 postman 사용
·
BACKEND/SpringBoot
MyBatis는 현재까지 레거시 프로젝트에서만 사용했었다. https://mybatis.org/mybatis-3/ko/index.html MyBatis – 마이바티스 3 | 소개 마이바티스는 무엇인가? 마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 mybatis.org JPA는 SQL문은 거진 사용안함 MyBatis는 SQL위주 단순 CRUD는 JPA가 편하다 테이블 구성이 복잡한 경우에는 MyBatis ( join 사용이 필요할 때 )사용이 편리하다. 스프링부트에서 MyBatis를 사용해 보겠당. 레거시 프로젝트에서는 MyBatis사용을 위해서 많은 설정이 필요했는데, 스프링 부트에서는 ..
스프링부트 게시판 만들기 강의
·
BACKEND/SpringBoot
https://www.youtube.com/watch?v=YshcPPHClR4&list=PLV9zd3otBRt7jmXvwCkmvJ8dH5tR_20c0&t=2s https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8#reviews [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세 www.inflearn.co..
h2 -> MySQL로 DB변경하기
·
BACKEND/SpringBoot
DB 변경하기에 앞서서 작성했던 파일들 정리함 H2 데이터베이스를 MySQL로 변경할거임 기존 데이터베이스 설정 주석처리 후 # MYSQL DB 설정 spring.datasource.url=jdbc:mysql://localhost:3306/ssb spring.datasource.username=root spring.datasource.password=1234 ㅁ My SQL에서 ssb 스키마 만들어줘야함 테스트하기 이런식으로 DB변경은 할 수 있다. SecurityConfig에서 h2 관련은 지워주면된다. 이제 최신버전은 해당코드를 람다식으로 작성을 해서 아래와 같이 바꿔주면되고 실행 잘 되는지만 테스트 해주면 됨 package com.mysite.sbb.config; import org.springfr..
질문/답변 추천 기능
·
BACKEND/SpringBoot
질문 추천 기능 Question @ManyToMany Set voter; Set은 중복을 허용하지 않는 자료형이다. Answer @ManyToMany Set voter; h2-console확인 QUESTION_VOTER, ANSWER_VOTER 테이블이 생성된 것을 확인할 수 있다. 이렇게 @ManyToMany 관계로 속성을 생성하면 새로운 테이블을 생성하여 데이터를 관리한다. 테이블에는 서로 연관된 엔티티의 고유번호(id) 2개가 프라이머리 키로 되어 있기 때문에 다대다(N:N) 관계가 성립하는 구조이다. https://blog.naver.com/drv982/222922939469 질문 추천 엔티티 변경 질문, 답변의 추천은 추천한 사람(SiteUser 객체)을 질문, 답변 엔티티에 추가해야 한다. Q..
수정일시 표시하기( 질문, 답변)
·
BACKEND/SpringBoot
question_detail.html modified at modified at modifyDate 의 값이 있으면 수정 일시 출력
답변 삭제
·
BACKEND/SpringBoot
question_detail.html 에 삭제 버튼 추가 AnswerService //답변 삭제하기 public void delete(Answer answer) { aRepo.delete(answer); } AnswerController //답변 삭제 처리 @PreAuthorize("isAuthenticated()") @GetMapping("/delete/{id}") public String answerDelete(Principal principal,@PathVariable("id") int id ) { Answer answer = aService.getAnswer(id); if(!answer.getAuthor().getUsername().equals(principal.getName())) { throw..
답변 수정
·
BACKEND/SpringBoot
question_detail.html 답변에 수정하기 버튼 추가함 AnswerService //답변 조회하기 public Answer getAnswer(int id) { Optional answer = aRepo.findById(id); if(answer.isPresent()) { return answer.get(); } else { throw new DataNotFoundException("answer not found"); } } //답변 수정하기 public void modify(Answer answer,String content) { answer.setContent(content); answer.setModifyDate(LocalDateTime.now()); aRepo.save(answer); }..
질문 삭제 처리
·
BACKEND/SpringBoot
question_detail.html 수정 버튼 아래에 추가 인증된 유저만 보여주기 현재 로그인 된 사람이 글쓴이와 동일할 때 QuestionService //질문 삭제 처리 public void delete(Question question) { qRepo.delete(question); } QuestionController //질문 삭제 처리 @PreAuthorize("isAuthenticated()") @GetMapping("/delete/{id}") public String questionDelete(Principal principal, @PathVariable("id") int id ) { Question question = qService.getQuestion(id); if(!question.g..