dullin
덜린의 코딩 항해 일지
dullin
전체 방문자
오늘
어제
  • 분류 전체보기 (257)
    • JAVA (19)
    • JAVASCRIPT (3)
    • HTML_CSS (3)
    • DB (35)
      • Oracle (16)
      • MySQL (17)
    • JAVA_SERVLET (5)
    • 오류노트 (4)
    • Library & API (6)
    • Spring (20)
      • 개발준비(setting) (1)
      • 전자정부프레임워크 (5)
    • 인공지능 (2)
    • Python (13)
    • OpenCV (1)
    • AI-900 (5)
    • Django (6)
    • Linux (0)
    • Android Studio (12)
    • React Native (1)
    • 프로 크리에이트 (1)
    • 오늘의 일기 (0)
    • PHP (2)
    • Next.js (0)

블로그 메뉴

  • 카테고리
  • 글쓰기
  • 홈

공지사항

인기 글

태그

  • 티스토리챌린지
  • 모두_화이팅
  • 오늘도 즐코딩
  • 오늘도 에러박살
  • 선빵필승
  • 갈증해소완료
  • 필사즉생행생즉사
  • 덤벼라 스프링
  • 개발환경 세팅
  • 강철맷집
  • 덤벼라
  • laravel
  • 예끼에러야
  • 코딩
  • 오블완
  • 코딩왕이_되는_그_날까지
  • 오갈완
  • 라라벨
  • 오늘도 오류 한모금
  • Safe Mode

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dullin

덜린의 코딩 항해 일지

JAVA - 기존에 하던 서블릿 Spring에서 더 간편하게 해보기
Spring

JAVA - 기존에 하던 서블릿 Spring에서 더 간편하게 해보기

2022. 6. 27. 12:53

DB에서 테이블 생성 >  토대로 BoardVO에 변수 생성 >

다오 역할을 수행 할 BoardMapper.java생성

(원래는 여기서 쿼리를 실행해도 되지만 쿼리가 길어지고 복잡해지는 경우

가독성이 극히 나빠질 수 있기 때문에 /프로젝트/src/main/resources밑에

도메인과 같은 뎁스로 파일을 생성해주고 그 밑에 쿼리를 받을 .xml을 만들어준다.

 

BoardMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dullinsub.mapper.BoardMapper">
	<select id="getList" resultType="board"> <!-- CDATA안에 든거 일반 문자취급! ex)cdata없으면 < 연산자를 태그로 인식 -->
	<![CDATA[
		SELECT * FROM TBL_BOARD WHERE 0 < BNO
	]]>
	</select>
	<select id="read" resultType="board"> <!-- BoardMapper에 @select 어노테이션 대행 -->
	<![CDATA[
		SELECT * FROM TBL_BOARD WHERE BNO = #{bno}
	]]>		
	</select>
	<insert id="insert">
		INSERT INTO TBL_BOARD(BNO, TITLE, CONTENT, WRITER)
		VALUES (SEQ_BOARD.NEXTVAL, #{title}, #{content}, #{writer}) <!-- #{}안에 무조건 소문자로 해야함 이제 ?하고 값 지정 안해줘도 된다! -->
	</insert>
	
	<insert id="insertSelectKey">
		<selectKey keyProperty="bno" order="BEFORE" resultType="long">
			SELECT SEQ_BOARD.NEXTVAL FROM DUAL 
		</selectKey>
		INSERT INTO TBL_BOARD(BNO, TITLE, CONTENT, WRITER)
		VALUES (#{bno}, #{title}, #{content}, #{writer})
	</insert>
</mapper>

 

.xml이후 기존의 BoardMapper.java

package com.dullinsub.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Select;

import com.dullinsub.domain.BoardVO;

public interface BoardMapper { // dao 역할 대신
//	@Select("SELECT * FROM TBL_BOARD WHERE BNO > 0") <!-- BoardMapper.xml에 @select 어노테이션 대행 -->
	public List<BoardVO> getList();
	
	public BoardVO read(Long bno);
	
	// DML 문장들은 반환타입 int로 하는거 추천 > 몇개 나왔는지 확인위해
	public int insert(BoardVO boardVO);

	public int insertSelectKey(BoardVO boardVO);
}

이후 

다시 본 과정으로 돌아와

이젠 service interface와 serviceImpl을 만들러간다.

-BoardService 인터페이스

package com.dullinsub.service;

import com.dullinsub.domain.BoardVO;

public interface BoardService {
	int register(BoardVO boardVO);
}

-BoardServiceImpl

package com.dullinsub.service;

import org.springframework.stereotype.Service;

import com.dullinsub.domain.BoardVO;
import com.dullinsub.mapper.BoardMapper;

import lombok.AllArgsConstructor;

@Service @AllArgsConstructor
public class BoardServiceImpl implements BoardService {
	private BoardMapper boardMapper;
	
	public int register(BoardVO boardVO){
		return boardMapper.insertSelectKey(boardVO);
	}
}

웹을 통한 실행을 위한 컨트롤러

- BoardController.java

package com.dullinsub.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import com.dullinsub.domain.BoardVO;
import com.dullinsub.service.BoardService;

import lombok.AllArgsConstructor;

@Controller
@RequestMapping("board/*")
@AllArgsConstructor
public class BoardController {
	private BoardService boardService;
	
	@PostMapping("register")
	public void register(BoardVO boardVO){
		boardService.register(boardVO);
		// redirect
	}
}

 

저작자표시 (새창열림)

'Spring' 카테고리의 다른 글

문의하기 메일보내기 기능 - gmail사용  (0) 2022.11.01
[Spring error!!] @GetMapping, @PostMapping 등 어노테이션 import 에러  (0) 2022.10.31
🤷‍♂️ 내가 만든 웹페이지 배포 🤷‍♂️ 설레설레 설레임🤑  (0) 2022.05.06
spring - Failed to load ApplicationContext 에러해결  (0) 2022.05.04
spring - 테스트코드 UNREAD 발생! 발생!  (0) 2022.05.03
    'Spring' 카테고리의 다른 글
    • 문의하기 메일보내기 기능 - gmail사용
    • [Spring error!!] @GetMapping, @PostMapping 등 어노테이션 import 에러
    • 🤷‍♂️ 내가 만든 웹페이지 배포 🤷‍♂️ 설레설레 설레임🤑
    • spring - Failed to load ApplicationContext 에러해결
    dullin
    dullin

    티스토리툴바