
[1] FRONT END
[2] BACK END
0. CONTROLLER
HTML ( 부분갱신이 어렵다. 다른 뷰는 가만히있는다. )
TEXT ( t1 | t2 | t3 .. ) 세 개의 토큰. 간단한데이터만 가능하고 가볍다.
JSON ( 일반적으로 가장 편리하다. ) Ajax비동기통신에서 자주쓰고. SampleController 두가지방식 다 숙지해야한다.
XML
- JDBC & MyBatis(FrameWork)
- 오늘 배울 것 : FileUpload
[3]
[4] 수집 -> 적제 -> 탐색 -> 분석 => 예측(AI)
[1] - [4] - [3] - [2] 순의 구조
cf) 4차 산업
@GetMapping("del.do")
public String delete(@RequestParam long seq, HttpSession session, HttpServletRequest request, Object page, ServletContext application) {
log.info("#session: " + session);
log.info("#Request: " + request);
log.info("page: " + page);
log.info("application: " + application);
service.deleteS(seq);
return "redirect:list.do";
}
}
(1) Controller
ArrayList
(2) View
ArrayList
객체를 넘길 때 ModelAndView를 써주면된다. list / content
<미션>
기본 : 페이징 기능
[게시판 다 된사람에 한해서]
1. 검색기능
2. 댓글기능
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
<SF - WGHO>
select
from
where
groub by
having
order by
where writer like '%'||#{keyword}||'%' //서로 결합이된다 앞 뒤 %
컨트롤러 업무로직 X
서비스에서 업무로직 O
DAO에서 DB 핸들링 !
미션 : 검색기능 구현 / 게시판!(글쓰기 : 파일업로드) 컬럼도추가 / AJAX JSON (주말) 참조 예습
서비스페이지 임플리 DB저장 fsize / ofname / saveFileName => Mapper Interface
form_mt.jsp 게시판 글쓰는데에다 넣어주기 2-3개정도.
JavaScript 한번 예습해보기 !! ! w3schools.com
<JavaScript -> jQuery -> AJAX>
JSON -> JSON.parse() -> js obj
js obj -> JSON.stringify() -> JSON
AJAX ! jQuery.js Bootstrap Vui.js
responseTEXT DATA 넘겨준다. 우리는 XXX.do로 넘기면된다.
1. Controller
@GetMapping("ajax.do")
public String m(){
return "result";
2. View
AJAX
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
우리가 공부하는 MyBatis = ORM(Object Relational Mapping) Framework
Object : 자바
Relational : DB
Mapping : 연결
자바의 객체와 테이블을 연결 ! !
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
스프링을 쓰는 가장 큰이유
DI <의존성 주입>
=> 인터페이스를 왜 굳이 사용해 ?
index - DTO(domain) sqlplus ctrl.c+v - mybatis-config.xml - resurces/AddressMapper.(SQL) -
java/AddressMapper(Interface) - Service - Controller - VIEW 순으로 만들기
가장 밑단인 mapper부터 !
(컬럼이름과 다른거 VO객체로 정의)
예를들면 서비스객체가 하나라면(Impl) ,
java Mapper
resource Mapper
이 두가지만 건드리면 된다.
서비스 / 컨트롤러는 수정안해도 된다. (독립적이된다. 레이어드가 끊어져서 분업 할 수 있다.)
AddressService service = new AddressServiceImpl();
AddressService service = //new AddressService1Impl();
AddressService service = //new AddressService2Impl();
추천 Mapper(가독성을위해서 주로 이 이름을 쓴다) == DAO
나중에 외부 넘길 때 ! 뷰보다는 내부적인구조 ( 패키지구성, 파일 배치 ) 스샷찍어서 취업 할 때 보여주는게좋다