SPRING3

정재호·2024년 8월 29일

Connection 통로
드라이버
sql작성
연결종료



my sql 드라이버
url
user id , pw 정보가 hikari가 가지고 있습니다.

커넥션 정보 > dataSource 가지고 있습니다.
생성될때 hikariConfig

  • 몇개 생성할지 정합니다.

실제 jdbc 일하는거 작성은

sqlSessionFactorybean

커넥션관리 dataSource - 참조를 합니다.

sql섹션팩토리한테 요청을 해야합니다.
kr.board.mapper 기능이 여기에 명시할께요

보드 mapper의 정확한 역할은

  • 연결책
  • 조건 인터페이스 위에 어노테이션이라고 해주면


기능을 구현합니다. 추상메서드
내부적으로 클래스가 만들어집니다.
mapper가 interface를 구현합니다.
BoardMapper

add ~ 누르면

내가 할껄 sql 섹션 팩토리가 내부적으로 구현합니다.

  • 알아서

board 테이블 Arraylist 타입으로 SELECT*FROM BOARD해줘

sql섹션 팩토리가 알아서합니다.

  • 조건

    대소문자상관없이 똑같아야합니다.

스프링 안에는 ioc container

  • 필요할때 꺼내씁니다.

    SQL섹션팩토리가 객체생성해서 메모리로 들어갑니다
    @autowired를 통해서 받아옵니다. [메모리에 올라간 SQL섹션팩토리 빈]

  • 커멘트패턴할때도

  • Board mapper를 상속받습니다. 업캐스팅 현상,
    sql 섹션 팩토리 빈을 쓰고 있기떄문입니다.

  • mybatis 내부적인 구조입니다.

    • 글쓰기 만들기
      템플릿으로 views에 boardForm.jsp 생성합니다.
      서버로 보내기 위한 form 태그 생성

      class="form-control" 꾸미기


      이렇게 빈공간 하면 다 들어가서 안됩니다.
      <button type="submit">등록</button>

      상세보기
      특정게시글 1개만 보는것입니다.

      보고싶은 게시글 정보를 넘겨줘야합니다.
      제목? 내용? 번호? 작성일? 날짜?
      유일하게 중복되지않는 idx번호를 넘겨줍니다.
      보안x get방식으로
      ?

      <a href="boardContents.do?idx=${vo.idx} }">

      	// 게시글 상세보기 기능
      	
      	// 1개니까 vo로 묶이지 않습니다. 2개이상
      	// RequestParam을 쓰면됩니다. 
      	// IntegerParse 아닙니다.
      	// 1게시글 6개 정보 번호,내용,작성자,날짜,조회
      	@RequestMapping("/boardContents.do")
      	public String boardContents
      (@RequestParam("idx")int idx, Model model) {
      		
      		System.out.println("게시글 상세보기 기능");
      		Board vo = mapper.boardContents(idx);
      		model.addAttribute("vo", vo);
      		return "boardContents";
      	}

      Board vo 가 return "boardContents" 됩니다.
      잠시 보관하기 위해서
      Model model 에 저장합니다.

      boardForm 복사 boardContents 생성합니다.


      package kr.board.entity;
      public class Board {
      //VO,DTO 기능

package kr.board.controller;
// 게시글 상세보기 기능
@RequestMapping("/boardContents.do")
// 게시글 입력 기능
@RequestMapping("/boardInsert.do")
// 게시판 입력페이지 이동 기능
@RequestMapping("/boardForm.do")
// 게시판 전체조회 기능 - boardList.do
@RequestMapping("/boardList.do") // 아래 메소드와 url을 연결 하는 맵핑

package kr.board.mapper;
@Select("SELECT * FROM BOARD ORDER BY INDATE DESC")
public ArrayList boardList();

@Insert("INSERT INTO BOARD(TITLE, CONTENTS,WRITER) VALUES(#{title},#{contents},#{writer})")
public void boardInsert(Board vo);

@Select("SELECT * FROM BOARD WHERE IDX = #{idx}")
public Board boardContents(int idx);

http://localhost:8081/controller/boardList.do
  
boardList 	@갈 수 있는 주소@ 	        	
  <a href="boardContents.do?idx=${vo.idx}">

 boardList 	@갈 수 있는 주소@ 	         	
    <a href ="boardForm.do" class="btn btn-primary">글쓰기</a>  
    @갈 수 있는 주소@  
    <form action="boardInsert.do" method="post">
profile
성장하는 하루가 되자

0개의 댓글