회원관리 인터페이스 추가와 update 오류 해결
Updatable<T>
반환값 int로
인터페이스
----------------
리스트 조회
Listable
인터페이스
추가수정삭제 공통 기능을 분리하기
List<T> 리스트니까 리스트 형태로 !
리스트 형태 지네릭 타입
매개변수 있, 없 형태
둘 중에 한가지 lt로
return null
필요할 때마다 추가해서 쓰기
service쪽에 SubjectServiceList파일에 ListableList<Object, Subject>
getList 생성
SubjectService 파일에 implements
필요한 구문들 조회하면 된다.
-----------------------------------------------------------
package org.choongang.global;
public interface Updatable<T> {
int update(T form);
}
----------------------------------------------------
package org.choongang.global;
import java.util.List;
public interface Listable<T, R> {
default List<R> getList(T search) { return null; } ;
default List<R> getList() { return null; };
}
----------------------------------------------------
package org.choongang.student.services;
import org.choongang.global.Listable;
import org.choongang.global.Service;
import org.choongang.global.Updatable;
import org.choongang.student.entities.Subject;
import org.choongang.student.mapper.SubjectMapper;
import java.util.List;
public class SubjectService implements Service<Subject>, Updatable<Subject>, Listable<Object, Subject> {
private SubjectMapper mapper;
public SubjectService(SubjectMapper mapper) {
this.mapper = mapper;
}
@Override
public int update(Subject form) {
return 0;
}
@Override
public List<Subject> getList(Object search) {
return Listable.super.getList(search);
}
}
----------------------------------------------------
package org.choongang.student.services;
import lombok.RequiredArgsConstructor;
import org.choongang.global.Listable;
import org.choongang.global.Service;
import org.choongang.student.entities.Subject;
import org.choongang.student.mapper.SubjectMapper;
import java.util.List;
@RequiredArgsConstructor
public class SubjectServiceList implements Service<List<Subject>>, Listable<Object, Subject> {
private final SubjectMapper mapper;
@Override
public List<Subject> process() {
System.out.println("**SubjectService-process1()");
return mapper.getSubject();
}
}
------------------------------------------------------
이런식으로 인터페이스 여러가지 방식으로 설계
Updatable<Subject> service = ....
service.update(...)
Listable<Object, Subject> service = ...
List<Subject> items = service.getList(...)
class CommonServiceLocator implements MemberLocator, StudentLocator {
}
interface MemberLocator {
default JoinService joinService() {
}
}
-> 쿼리 update 하면 DBeaver에서는 바뀌어 있는데 콘솔창에는 안 된다
services/SubjectServiceList파일에 마지막 get.return 소스가 안 되어있다.
세팅이 캐쉬모드로 cacheEnable
캐쉬 원인 및 삭제
resources.global/config mybatis-config.xml에 setting안에 cashable 문구 넣기
그래도 안되면 select 조회 마다 다 구문 넣어주기
그래도 안된다.
StudentServiceLocator.java에서 47번째 줄 service.put(menu, service); 를 주석 처리하면 된다!
이 방법이 그냥 땜빵 처리이긴 하지만 기능은 되니까 나중에 강사님이 완벽하게 구현해서 알려주실 때까지 기다리기