2021.03.18(Thu) 📌 TIL
📃 [어제 복습]
웹서버실행 = 구동=스타트 , 자동인식하는 문서
ㅣ- pom.xml
ㅣ- web.xml
ㅣ- root-context.xml --------> 스프링 교재보고
ㅣ- servlet-context.xml
ㅣ- 파일업로드, jsp뷰, 맨마지막 ccs base-패키지=net.hb.*
ㅣ- dao-context.xml문서를 여기에 연결
src/main/java 컨트롤,다오,디티오
src/main/resources 문서세팅 XML/properties
ㅣ- config.mybatis
ㅣ- board.xml
ㅣ- sqlMapConfig.xml
ㅣ- dao-context.xml
ㅣ- db.properties
src/main/webapp 웹으로 가는 웹문서
ㅣ- resource 이미지가 있는 리소스
ㅣ- images폴더 복붙
ㅣ- upload
ㅣ- WEB-INF
ㅣ- index.jsp
==========================3월 18일 목요일===============================
💻 [오늘의 수업]
★★스프링은 new키워드 최대한 자제하고 한번 자동으로 인스턴스를 생성되면 개체를 유지★★
BoardDAO dao = new BoardDAO( ); 대신
@Autowired BoardDAO; 라고 기술합니다.
jsp에서는 ==> <jsp:useBean id=dao class=net.hb.crud.BoardDAO /> 사용
★★스프링은 내부적으로 데이터를 연결시킬 때 이름name으로 연결★★
<input type="text" name="title"> 이라하면
BoardDTO.java 문서의 private String title필드와 연결
hobby테이블 title필드와도 연결
board.xml문서 insert ~ values( #{ title } )
BoardController.java문서에서
public String board_insert(BoardDTO dto) {
//jsp에서는 뷰문서의 데이터를 넘길때는 request.getParameter("title")사용
}
board.xml문서
<네임영역board> 퀴리문 </네임역역>
==>반드시 네임영역 .@@@ board.add 접근해야한다 !
(네임영역 중복되면 X)
==> 네임영역 .@@@ 에 접근하는 클래스 SqlSessionTemplate
BoardDAO.java문서와 board.xml문서 연결하는 클래스 SqlSessionTemplate입니다
그래서 BoardDAO.java문서에 객체화 @Autowired SqlSessionTemplate temp기술
💻 [전체출력 순서 설명]
board.xml문서 => BoardDAO.java => BoardController.java => boardList.jsp문서
1> BoardDTO.java 순수자바
게터/세터 행번호rn필드 추가 img_file_name, upload_f
2> board.xml 문서
<select id="selectAll" resultType="net.hb.crud.BoardDTO"> select rownum rn, h.* from hobby h </select>
비교설명 : GuestSQL.java문서 testList.jsp문서 guestList.jsp문서서에서 전체데이터출력
==> while(RS.next()==true){
GuestDTO dto = new GuestDTO( );
dto.setTitle(RS.getString("title"); ~~~
list.add(dto);
}
3> BoardDAO.java
public List dbSelect( ){
~~ return temp.selectList("board.selecAll") }
4> BoardController.java
public String board_list( ){
List LG = dao.dbSelect( );
값전달 request.setAttribute("가짜", "진짜");, session.setAttribute("가짜", "진짜");
스프링 Model, ModerlAndView클래스로 값전달
=> model.addAtrribute("LG", LG);
return "boardList" ;
}
5> boardList.jsp문서 상단에 jstl태그선언 prefix=c, prefix=fmt
<c:forEach var="dto" items="${LG}">
제목: ${dto.title} ${ dto.getTitle( ) }
<img src = '${pageContext.request.contextPath}/resources/upload/${dto.img_file_name}'
width=100 height=30 border=0> <c:/forEach>
💻📃 [한번 더 정리]
1> BoardDTO.java ==> 추가 private int rn; //행번호
2> board.xml ==> 추가<select id="selectAll" resultType="net.hb.crud.BoardDTO"></select>
3> BoardDAO.java ==> 추가 return temp.selectList("board.selectAll");
4> BoardController.java ==> 추가 List<BoardDTO> LG = dao.dbList( ); model.addAttribute("LG", LG);
5> jstl, fmt 태그 상단에 기술
6> boardList.jsp ==> <c:forEach var="dto" items="${LG}">${dto.title}
7> index.jsp문서 ==> 변경 boardList.do (=boardList.jsp)
8> boardList.jsp문서 행번호,이름,제목,성별,취미,이미지
<table>
<tr> <td> 6개 항목만 출력 </td> </tr>
그림출력 <img src ='${pageContext.request.contextPath}/resources/upload/${dto.img_file_name}' >
</table>
9> BoardController.java
public String board_insert(BoardDTO dto) {
~~ dto.dbInset(dto) ;
//return "boardList"; //에러는 없지만 내용없이 제목만 출력
return "redirect:/boardList.do" ; //boardList.do표식 맨 마지막에 return "boardList"
//저장서브릿 response.sendRedirect("glist.do") ;
}
10> src/main/webapp
l- index.jsp문서 먼저 실행
11> 자동실행되는문서 pom.xml, web.xml, root-context.xml, servlet-context.xml
servlet-context.xml문서
ㅣ- <beans:import resource="classpath:config/mybatis/dao-context.xml" />
src/main/webapp
ㅣ- congif.mybatis
ㅣ- board.xml문서 id를 BoardDAO.java문서 SqlSessionTemplate temp접근
ㅣ- sqlMapConfig.xml => board.xml
ㅣ- dao-context.xml => db.propertiest + SqlMapConfig.xml +SqlSessionTemplate temp클래스기술
ㅣ- db.properties
////////////////////////////////////////////////////////////////////////////////////////////////
SQL> desc hobby
set linesize 1200;
set pagesize 1200;
col title for a10;
col content for a10;
col img_file_name for a25;
col name for a14;
SQL> commit ;
SQL> select hobby_idx, name, title, img_file_name from hobby ;
////////////////////////////////////////////////////////////////////////////////////////////////
---------------------------------------------------오후 수업--------------------------------------------------
💻[한건 상세]
1> boardList.jsp문서 제목클릭
<a href="boardDetail.do?idx=${dto.hobby_idx}" ${dto.title} </a>
2> BoardController.java문서
@RequestMapping("/boardDetail.do")
public String board_detail(@RequestParam("idx") int data , Model model){
BoardDTO dto = dao.dbDetail(data) ;
model.addAttribute("dto", dto) ;
return "boardDetail" ;
}
3> boardDetail.jsp문서 생성
${dto.title} ${dto.gender} ~~~
4> board.xml문서
<select id="detail" parameterType="int" resultType="net.hb.crud.BoardDTO">
select * from hobby where hobby_idx = #{data}
</select>
5> BoardDAO.java문서
public BoardDTO dbDetail(int data){ return temp.selectOne("board.detail", data); }
==> 입력한 상세페이지 화면
========================================================================================================================================================