스파르타코딩클럽 11주차 5일
[스프링]
https://wildeveloperetrain.tistory.com/49
관습적인 추상화 Service, ServiceImpl 구조를 사용해야 할까?
Service interface와 ServiceImpl class 구조를 사용하는 이유? 대부분의 프로젝트는 Service를 만들 때 MemberService와 같이 서비스를 인터페이스로 설계하고, MemberServiceImpl 라는 구현체인 클래스를 생성해서
wildeveloperetrain.tistory.com
Controller와 Service사이에 Interface를 넣어서
public class PostCommentServiceImpl implements CommentService
public class StoryCommentServiceImpl implements CommentService
이런식으로 넣어서 같은 commentservice를 가지지만 포스트와 스토리 간의 댓글을 가질수 있다.
interface가 정말중요!!
@Service에 @Component가 있다.
빈을 등록하려면 @Component에 빈을 등록하고
빈을 사용하려면 @xargconstructor 를 사용해야한다.
추상화적용 github : https://github.com/karlema/midterm_apply_abstract
[SQL]
%연산자 쓸때 꼭 like앞에 붙여줘야함!!
1주차 숙제 정답
SELECT *from orders o2
WHERE email like '%naver.com'
AND payment_method = 'kakaopay'
AND course_title ='웹개발 종합반'
2주차 시작
1. users에 name과 숫자로 정렬
SELECT name, COUNT(*) from users u
group by name
2.name의 숫자카운팅하고 숫자를 오름차순 정렬
SELECT name, COUNT(*) from users u
group by name
order by COUNT(*)
*참고 쿼리 실행 순서
from → group by → select → order by
3. orders라는 table에 payment_method라는 필드에 접근해서 그중 웹개발종합반의 카운트를 내림차순으로 정렬하라
SELECT payment_method , COUNT(*) from orders o
WHERE course_title ='웹개발 종합반'
group by payment_method
order by COUNT(*) dsec
4. course_id별 '오늘의 다짐'에 달린 평균 like 개수 구해보기
SELECT course_id, ROUND(avg(likes),1) FROM checkins c
group by course_id
*참고 : 처음할때는 show table로 테이블 보고 참고해서 보기
5. 약자로 쿼리문 날리기
SELECT payment_method, COUNT(*) as cnt from orders o
WHERE o.course_title ='앱개발 종합반'
GROUP by payment_method
필드 이름 변경 : Count -> cnt
프로그래밍 변수 이용 orders o