상세 컨텐츠

본문 제목

[싸이월드 미니룸 움직여서 저장]

카테고리 없음

by esoesmio 2023. 6. 19. 17:01

본문

물체를 드래그해서 좌표값을 저장한후 디비에 저장. 새로고침하면 db에서 좌표값을 불러와서 물체의 위치를 지정해줌.

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<!DOCTYPE html>
<html>
<head>
    <title>Title</title>
    <script>
        window.onload = function() {
            var ball = document.getElementById('ball');
            var xcoordinate = ball.getAttribute('data-xcoordinate');
            var ycoordinate = ball.getAttribute('data-ycoordinate');

            ball.style.position = 'absolute';
            ball.style.left = xcoordinate + 'px';
            ball.style.top = ycoordinate + 'px';
        }

    </script>
</head>
<body>


<img src="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsV3xg%2FbtskiTBVhXA%2F7gsmX5shLVkwSYBqNlKUSk%2Fimg.jpg" id="gate" class="droppable">

<img src="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLIl8p%2FbtskiyYPNzI%2F2uelDLhG09ZAK8xsZiJ8RK%2Fimg.png" id="ball" data-xcoordinate="${xcoordinate-120}" data-ycoordinate="${ycoordinate-180}">
<p>${xcoordinate}</p>
<p>${ycoordinate}</p>
<form id="ha" name action="/board/haha.do" method="post">
    <input id="x" name="xx">
    <input id="y" name="yy">
    <button type="submit" id="haha"></button>
</form>
<p>Drag the ball.</p>
<script>
    let pagex;
    let pagey;
    // 잠재적 드롭 가능한 요소
    let currentDroppable = null;

    document.getElementById('ball').onmousedown = function (event) {

        let shiftX = event.clientX - document.getElementById('ball').getBoundingClientRect().left;
        let shiftY = event.clientY - document.getElementById('ball').getBoundingClientRect().top;

        document.getElementById('ball').style.position = 'absolute';
        document.getElementById('ball').style.zIndex = 1000;
        document.body.append(document.getElementById('ball'));

        moveAt(event.pageX, event.pageY);
        pagex = event.pageX;
        pagey  = event.pageY;


        function moveAt(pageX, pageY) {
            document.getElementById('ball').style.left = pageX - shiftX + 'px';
            document.getElementById('ball').style.top = pageY - shiftY + 'px';
        }

        function onMouseMove(event) {
            moveAt(event.pageX, event.pageY);

            ball.hidden = true;
            let elemBelow = document.elementFromPoint(event.clientX, event.clientY); // elemBelow : 드롭할 수 있는 공의 아래 요소, 축구골대
            document.getElementById('ball').hidden = false;

            // 공을 윈도우 밖으로 드래그 했을 때,
            // clientX, clientY 가 윈도우 밖에 있으면, elementFromPoint 는 null 반환
            if (!elemBelow) return;

            // 잠재적으로 드롭할 수 있는 요소를 'droppable' 클래스로 지정한다.  축구 골대
            let droppableBelow = elemBelow.closest('.droppable');

            // 둘다 null 일 수 있다. 들어오거나, 나가거나에 해당할 때,
            // currentDroppale = null : 축구 골대 밖에 있을 때,
            // droppableBelow = null : 이벤트 동안 축구 골대 안에 없을 때,
            if (currentDroppable != droppableBelow) {
                if (currentDroppable) {
                    // 축구 골대 밖에 있을 때 강조 제거
                    leaveDroppable(currentDroppable);
                }
                currentDroppable = droppableBelow;
                if (currentDroppable) { // null if we're not coming over a droppable now
                    // 축구 골대 안으로 들어오는 것을 처리하는 로직
                    enterDroppable(currentDroppable);
                }
            }
            pagex = event.pageX;
            pagey  = event.pageY;
            document.getElementById('x').value = pagex;
            document.getElementById('y').value = pagey;

        }

        document.addEventListener('mousemove', onMouseMove);

        document.getElementById('ball').onmouseup = function () {
            document.removeEventListener('mousemove', onMouseMove);
            document.getElementById('ball').onmouseup = null;
        };

    };

    function enterDroppable(elem) {
        elem.style.background = 'pink';
    }

    function leaveDroppable(elem) {
        elem.style.background = '';
    }

    document.getElementById('ball').ondragstart = function () {
        return false;
    };

    document.getElementById('haha').addEventListener('click',function (){
        {
            console.log('시발');
            console.log(pagex);
            console.log(pagey);
        }
    })
</script>
</body>
</html>
package com.bit.springboard.dto;

public class xyDTO {
    @Override
    public String toString() {
        return "xyDTO{" +
                "xx=" + xx +
                ", yy=" + yy +
                ", no=" + no +
                '}';
    }

    public int getXx() {
        return xx;
    }

    public void setXx(int xx) {
        this.xx = xx;
    }

    public int getYy() {
        return yy;
    }

    public void setYy(int yy) {
        this.yy = yy;
    }

    private int xx;
   private int yy;

private int no;

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }
}
package com.bit.springboard.controller;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import com.bit.springboard.common.FileUtils;
import com.bit.springboard.dto.BoardDTO;
import com.bit.springboard.dto.BoardFileDTO;
import com.bit.springboard.dto.Criteria;
import com.bit.springboard.dto.PageDTO;
import com.bit.springboard.dto.UserDTO;
import com.bit.springboard.service.board.BoardService;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

@Controller
@RequestMapping("/board")
public class BoardController {
	@Autowired
	private BoardService boardService;

	//post,get 요청 모두 받아서 실
	@RequestMapping("/getBoardList.do")
	public String getBoardList(Model model,
							   @RequestParam Map<String, String> paramMap,
							   Criteria cri) {
		//화면을 표출하면서 바로 데이터 출력
		model.addAttribute("boardList", boardService.getBoardList(paramMap, cri));

		//검색조건, 검색어 화면단으로 다시 전달
		if(paramMap.get("searchCondition") != null &&
				!paramMap.get("searchCondition").equals("")) {
			model.addAttribute("searchCondition",
					paramMap.get("searchCondition"));
		}

		if(paramMap.get("searchKeyword") != null &&
				!paramMap.get("searchKeyword").equals("")) {
			model.addAttribute("searchKeyword",
					paramMap.get("searchKeyword"));
		}

		//총 게시글의 개수 구하기
		int boardTotal = boardService.getBoardTotal(paramMap);

		model.addAttribute("pageDTO", new PageDTO(cri, boardTotal));

		return "board/getBoardList";
	}

	//새 글 등록 화면으로 이동(get방식)
	@GetMapping("insertBoard.do")
	public String insertBoardView(HttpSession session) {
		//로그인 된 정보가 없으면 로그인 화면으로 이동
		//세션에 담겨있는 사용자 정보 조회
		UserDTO loginUser = (UserDTO)session.getAttribute("loginUser");

		if(loginUser == null) {
			return "redirect:/user/login.do";
		}

		return "board/insertBoard";
	}

	//새 글 등록 처리(post방식)
	//등록 완료후 게시글 목록으로 이동
	@PostMapping("/insertBoard.do")
	public String insertBoard(BoardDTO boardDTO,
							  MultipartFile[] uploadFiles,
							  HttpServletRequest request) throws IOException {
		List<BoardFileDTO> boardFileList = new ArrayList<BoardFileDTO>();

		//파일 업로드 기능구현
		if(uploadFiles.length > 0) {
			//업로드 폴더 지정
			//서버의 절대 경로 얻기
			String attachPath = request.getSession().getServletContext()
					.getRealPath("/") + "/upload/";
			System.out.println(request.getSession().getServletContext()
					.getRealPath("/"));
			File directory = new File(attachPath);

			//폴더가 존재하지 않으면 폴더 생성
			if(!directory.exists()) {
				directory.mkdir();
			}

			for(int i = 0; i < uploadFiles.length; i++) {
				BoardFileDTO boardFileDTO = new BoardFileDTO();

				boardFileDTO = FileUtils.parseFileInfo(uploadFiles[i], attachPath);

				boardFileList.add(boardFileDTO);
			}
		}


		boardService.insertBoard(boardDTO, boardFileList);

		return "redirect:/board/getBoardList.do";
	}

	//조회수 올리기
	@GetMapping("/updateBoardCnt.do")
	public String updateBoardCnt(@RequestParam("boardNO") int boardNo) {
		//조회수 올리기
		boardService.updateBoardCnt(boardNo);

		return "redirect:/board/getBoard.do?boardNO=" + boardNo;
	}


	@GetMapping("/haha.do")
	public String aa(Model model) {
		//조회수 올리기

		model.addAttribute("xcoordinate", boardService.getxy(1).getXx());
		model.addAttribute("ycoordinate", boardService.getxy(1).getYy());
		System.out.println(boardService.getxy(1));

		return "board/haha";
	}

	@PostMapping("/haha.do")
	public String aea(@RequestParam("xx") int xx ,@RequestParam("yy") int yy ) {
		//조회수 올리기
		System.out.println(xx);
		System.out.println(yy);
boardService.insertxy(xx,yy);
		return "redirect:/board/haha.do";
	}


	@GetMapping("/getBoard.do")
	public String getBoard(@RequestParam("boardNO") int boardNo,
						   Model model) {
		model.addAttribute("board", boardService.getBoard(boardNo));
		//첨부파일 리스트 화면단으로 전송
		System.out.println(boardService.getBoardFileList(boardNo));
		model.addAttribute("boardFileList", boardService.getBoardFileList(boardNo));

		return "board/getBoard";
	}

	@PostMapping("/updateBoard.do")
	public String updateBoard(BoardDTO boardDTO, MultipartFile[] uploadFiles, MultipartFile[] changedFiles, @RequestParam("originFiles") String originFiles, HttpServletRequest request) throws IOException {

		System.out.println("originFiles =========" + originFiles);
		System.out.println("uploadFiles =========" + uploadFiles.length);
		//Json string  형태의 originfiles list <boardfiledto>로 변경
		List<BoardFileDTO> originFileList = new ObjectMapper().readValue(originFiles, new TypeReference<List<BoardFileDTO>>() {});


		String attachPath = request.getSession().getServletContext().getRealPath("/") + "/upload/";


		File directory = new File(attachPath);

		if(!directory.exists()) {
			directory.mkdir();

		}

		//수정되거나 추가도니 파일 정보가 담기는 List
		List<BoardFileDTO> uFileList = new ArrayList<BoardFileDTO>();

		for(int i = 0; i < originFileList.size(); i++) {
			if(originFileList.get(i).getBoardFileStatus().equals("U")) {
				for(int j = 0; j < changedFiles.length; j++) {
					if(originFileList.get(i).getNewFileName().equals(
							changedFiles[j].getOriginalFilename())) {
						BoardFileDTO boardFileDTO = new BoardFileDTO();

						boardFileDTO = FileUtils.parseFileInfo(changedFiles[j], attachPath);

						boardFileDTO.setBoardNO(
								originFileList.get(i).getBoardNO());
						boardFileDTO.setBoardFileNo(
								originFileList.get(i).getBoardFileNo());
						boardFileDTO.setBoardFileStatus("U");

						uFileList.add(boardFileDTO);
					}
				}
			} else if(originFileList.get(i).getBoardFileStatus().equals("D")) {
				BoardFileDTO boardFileDTO = new BoardFileDTO();

				boardFileDTO.setBoardNO(
						originFileList.get(i).getBoardNO());
				boardFileDTO.setBoardFileNo(
						originFileList.get(i).getBoardFileNo());
				boardFileDTO.setBoardFileStatus("D");

				//실제 서버의 파일 삭제
				File dFile = new File(attachPath
						+ originFileList.get(i).getBoardFileName());
				dFile.delete();


				uFileList.add(boardFileDTO);
			}
		}

		if(uploadFiles.length > 0) {
			for(int i = 0; i < uploadFiles.length; i++) {
				MultipartFile file = uploadFiles[i];

				if(!file.getOriginalFilename().equals("") &&
						file.getOriginalFilename() != null) {
					BoardFileDTO boardFileDTO =
							FileUtils.parseFileInfo(file, attachPath);

					boardFileDTO.setBoardNO(boardDTO.getBoardNO());
					boardFileDTO.setBoardFileStatus("I");

					uFileList.add(boardFileDTO);
				}
			}
		}


		boardService.updateBoard(boardDTO,uFileList);

		//return "redirect:/board/getBoardList.do";
		return "redirect:/board/getBoard.do?boardNO=" + boardDTO.getBoardNO();
	}

	//getBoardListAjax 화면으로 이동
	@GetMapping("/getBoardListAjax.do")
	public String getBoardListAjaxView() {
		return "board/getBoardListAjax";
	}

	//게시글 목록 json string으로 리턴
//	@PostMapping(value="/getBoardListAjax.do", 
//			produces="application/text; charset=UTF-8")
//	//리턴된 데이터만 response body로 전송
//	@ResponseBody
//	public String getBoardListAjax() throws JsonProcessingException {
//		//json string을 생성하기 위한 ObjectMapper 객체 생성
//		ObjectMapper objectMapper = new ObjectMapper();
//		
//		//json 데이터 형식을 만들기 위한 Map생성
//		Map<String, Object> jsonMap = new HashMap<String, Object>();
//		
//		//jsonMap에 담아줄 게시글 목록 조회
//		List<BoardDTO> boardList = boardService.getBoardList();
//		
//		//게시글 목록 jsonMap에 담기
//		jsonMap.put("boardList", boardList);
//		
//		//jsonMap을 jsonString으로 변경
//		String jsonStr = objectMapper.writerWithDefaultPrettyPrinter()
//									 .writeValueAsString(jsonMap);
//		
//		//변환된 jsonStr 리턴
//		return jsonStr;
//	}

	@GetMapping("/deleteBoard.do")
	public String deleteBoard(@RequestParam("boardNO") int boardNo) {
		boardService.deleteBoard(boardNo);

		return "redirect:/board/getBoardList.do";
	}

	@RequestMapping("fileDown.do")
	@ResponseBody
	public ResponseEntity<Resource> fileDown(BoardFileDTO boardFileDTO) {
		//화면에서 보내준 boardNo, boardFileNo으로 다운받을 파일 정보 조회
		BoardFileDTO boardFile = boardService.getBoardFile(boardFileDTO);

		Resource resource = new FileSystemResource(
				boardFile.getBoardFilePath() + boardFile.getBoardFileName());

		String resourceName = resource.getFilename();

		HttpHeaders header = new HttpHeaders();

		try {
			//헤더에 다운받을 파일에 대한 정보 추가
			header.add("Content-Disposition", "attachment; filename="
					+ new String(resourceName.getBytes("UTF-8"), "ISO-8859-1"));
		} catch(Exception e) {
			System.out.println(e.getMessage());
		}

		return new ResponseEntity<Resource>(resource, header, HttpStatus.OK);
	}


}
<?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="BoardDAO">
	<insert id="insertBoard" parameterType="board">


		<selectKey resultType="int" keyProperty="boardNO"
			order="AFTER">

			SELECT IFNULL(MAX(BOARD_NO),0) FROM T_BOARD
		</selectKey>


		INSERT INTO T_BOARD(
		BOARD_TITLE,
		BOARD_CONTENT,
		BOARD_WRITER
		) VALUES (
		#{boardTitle},
		#{boardContent},
		#{boardWriter}
		)
	</insert>

	<update id="updateBoard" parameterType="board">
		UPDATE T_BOARD
		SET
		BOARD_TITLE = #{boardTitle},
		BOARD_CONTENT = #{boardContent}
		WHERE
		BOARD_NO = #{boardNO}
	</update>

	<delete id="deleteBoard" parameterType="int">
		DELETE
		FROM T_BOARD
		WHERE
		BOARD_NO = #{boardNO}
	</delete>

	<select id="getBoard" parameterType="int" resultType="board">
		SELECT
		BOARD_NO
		, BOARD_TITLE
		, BOARD_CONTENT
		, BOARD_WRITER
		, BOARD_REGDATE
		,
		BOARD_CNT
		FROM T_BOARD
		WHERE BOARD_NO = #{boardNO}
	</select>
















	<select id="getBoardList" parameterType="map" resultType="board">
		SELECT BOARD_NO
		, BOARD_TITLE
		, BOARD_CONTENT
		, BOARD_WRITER
		,
		BOARD_REGDATE
		, BOARD_CNT
		FROM T_BOARD
		<if
			test="search.searchKeyword != null and search.searchKeyword != ''">
			<if test="search.searchCondition == 'all'">
				WHERE 1=0
				OR BOARD_TITLE LIKE CONCAT('%',
				#{search.searchKeyword}, '%')
				OR BOARD_CONTENT LIKE CONCAT('%',
				#{search.searchKeyword}, '%')
				OR BOARD_WRITER LIKE CONCAT('%',
				#{search.searchKeyword}, '%')
			</if>
			<if test="search.searchCondition != 'all'">
				WHERE 1=1
				<if test="search.searchCondition == 'title'">
					AND BOARD_TITLE LIKE CONCAT('%',
					#{search.searchKeyword}, '%')
				</if>
				<if test="search.searchCondition == 'content'">
					AND BOARD_CONTENT LIKE CONCAT('%',
					#{search.searchKeyword}, '%')
				</if>
				<if test="search.searchCondition == 'writer'">
					AND BOARD_WRITER LIKE CONCAT('%',
					#{search.searchKeyword}, '%')
				</if>
			</if>
		</if>

		LIMIT #{page.amount} OFFSET #{page.startNum}
	</select>
	<update id="updateBoardCnt" parameterType="int">
		UPDATE T_BOARD
		SET
		BOARD_CNT = BOARD_CNT + 1
		WHERE BOARD_NO = #{boardNO}
	</update>
	<select id="getBoardTotal" parameterType="map" resultType="int">
		SELECT COUNT(*) FROM T_BOARD

		<if test="searchKeyword != null and searchKeyword != ''">
			<if test="searchCondition == 'all'">
				WHERE 1=0
				OR BOARD_TITLE LIKE CONCAT('%',
				#{searchKeyword}, '%')
				OR BOARD_CONTENT LIKE CONCAT('%',
				#{searchKeyword}, '%')
				OR BOARD_WRITER LIKE CONCAT('%',
				#{searchKeyword}, '%')
			</if>
			<if test="searchCondition != 'all'">
				WHERE 1=1
				<if test="searchCondition == 'title'">
					AND BOARD_TITLE LIKE CONCAT('%', #{searchKeyword}, '%')
				</if>
				<if test="searchCondition == 'content'">
					AND BOARD_CONTENT LIKE CONCAT('%', #{searchKeyword},
					'%')
				</if>
				<if test="searchCondition == 'writer'">
					AND BOARD_WRITER LIKE CONCAT('%', #{searchKeyword}, '%')
				</if>
			</if>
		</if>



	</select>







	<!-- <select id="getBoardList" -->
	<!-- parameterType="map" -->
	<!-- resultType="board"> -->
	<!-- SELECT BOARD_NO -->
	<!-- , BOARD_TITLE -->
	<!-- , BOARD_CONTENT -->
	<!-- , BOARD_WRITER -->
	<!-- , BOARD_REGDATE -->
	<!-- , BOARD_CNT -->
	<!-- FROM T_BOARD -->
	<!-- <if test="search.searchKeyword != null and search.searchKeyword != 
		''"> -->
	<!-- <if test="search.searchCondition == 'all'"> -->
	<!-- WHERE -->
	<!-- BOARD_TITLE LIKE CONCAT('%', #{search.searchKeyword}, '%') -->
	<!-- OR BOARD_CONTENT LIKE CONCAT('%', #{search.searchKeyword}, '%') -->
	<!-- OR BOARD_WRITER LIKE CONCAT('%', #{search.searchKeyword}, '%') -->
	<!-- </if> -->
	<!-- <if test="search.searchCondition != 'all'"> -->
	<!-- -->
	<!-- <if test="search.searchCondition == 'title'"> -->
	<!-- WHERE BOARD_TITLE LIKE CONCAT('%', #{search.searchKeyword}, '%') -->
	<!-- </if> -->
	<!-- <if test="search.searchCondition == 'content'"> -->
	<!-- WHERE BOARD_CONTENT LIKE CONCAT('%', #{search.searchKeyword}, '%') -->
	<!-- </if> -->
	<!-- <if test="search.searchCondition == 'writer'"> -->
	<!-- WHERE BOARD_WRITER LIKE CONCAT('%', #{search.searchKeyword}, '%') -->
	<!-- </if> -->
	<!-- </if> -->
	<!-- </if> -->

	<!-- LIMIT #{page.amount} OFFSET #{page.startNum} -->
	<!-- </select> -->
	<!-- <update id="updateBoardCnt" -->
	<!-- parameterType="int"> -->
	<!-- UPDATE T_BOARD -->
	<!-- SET BOARD_CNT = BOARD_CNT + 1 -->
	<!-- WHERE BOARD_NO = #{boardNO} -->
	<!-- </update> -->
	<!-- <select id="getBoardTotal" parameterType="map" resultType="int"> -->
	<!-- SELECT COUNT(*) FROM T_BOARD -->

	<!-- <if test="searchKeyword != null and searchKeyword != ''"> -->
	<!-- <if test="searchCondition == 'all'"> -->
	<!-- WHERE 1=0 -->
	<!-- OR BOARD_TITLE LIKE CONCAT('%', #{searchKeyword}, '%') -->
	<!-- OR BOARD_CONTENT LIKE CONCAT('%', #{searchKeyword}, '%') -->
	<!-- OR BOARD_WRITER LIKE CONCAT('%', #{searchKeyword}, '%') -->
	<!-- </if> -->
	<!-- <if test="searchCondition != 'all'"> -->
	<!-- WHERE 1=1 -->
	<!-- <if test="searchCondition == 'title'"> -->
	<!-- AND BOARD_TITLE LIKE CONCAT('%', #{searchKeyword}, '%') -->
	<!-- </if> -->
	<!-- <if test="searchCondition == 'content'"> -->
	<!-- AND BOARD_CONTENT LIKE CONCAT('%', #{searchKeyword}, '%') -->
	<!-- </if> -->
	<!-- <if test="searchCondition == 'writer'"> -->
	<!-- AND BOARD_WRITER LIKE CONCAT('%', #{searchKeyword}, '%') -->
	<!-- </if> -->
	<!-- </if> -->
	<!-- </if> -->



	<!-- </select> -->




	<insert id="insertBoardFile" parameterType="boardFile">

		INSERT INTO
		T_BOARD_FILE (
		BOARD_NO,
		BOARD_FILE_NO,
		BOARD_FILE_NAME,
		BOARD_FILE_PATH,
		BOARD_FILE_ORIGIN,
		BOARD_FILE_CATE


		) VALUES(

		#{boardNO},
		(
		SELECT
		IFNULL(MAX(A.BOARD_FILE_NO),0) + 1
		FROM T_BOARD_FILE A
		WHERE A.BOARD_NO = #{boardNO}

		),
		#{boardFileName},
		#{boardFilePath},
		#{boardFileOrigin},
		#{boardFileCate}

		)









	</insert>




	<select id="getBoardFileList" parameterType="int"
		resultType="boardFile">
		<!--<[!CDATA[]]> : <> 앨라몬툻 읽히지 않고 부등호로 읽게 해준다. -->
<!-- 	<[!CDATA[

		SELECT BOARD_NO, BOARD_FILE_NO, BOARD_FILE_NAME, BOARD_FILE_PATH,
		BOARD_FILE_ORIGIN FROM T_BOARD_FILE WHERE BOARD_NO=#{boardNO}






		]]>  -->



	SELECT BOARD_NO, BOARD_FILE_NO, BOARD_FILE_NAME, BOARD_FILE_PATH,
		BOARD_FILE_ORIGIN,BOARD_FILE_CATE FROM T_BOARD_FILE WHERE BOARD_NO=#{boardNO} 









	</select>


<select id="getBoardFile" parameterType="boardFile" resultType="boardFile">

	SELECT BOARD_NO, BOARD_FILE_NO, BOARD_FILE_NAME, BOARD_FILE_PATH,
		BOARD_FILE_ORIGIN,
		BOARD_FILE_CATE FROM T_BOARD_FILE WHERE BOARD_NO=#{boardNO} 
		AND BOARD_FILE_NO=#{boardFileNo}

</select>

	<select id="getxy"  parameterType="int" resultType="xy">

		SELECT * FROM updatexy WHERE no=#{no}


	</select>

<update id="updateBoardFile">

UPDATE T_BOARD_FILE
SET BOARD_FILE_NAME = #{boardFileName},
BOARD_FILE_ORIGIN = #{boardFileOrigin},
BOARD_FILE_PATH = #{boardFilePath},
BOARD_FILE_CATE = #{boardFileCate}
WHERE BOARD_NO = #{boardNO}
AND BOARD_FILE_NO = #{boardFileNo}

</update>

	<update id="updatexy" parameterType="map">

		UPDATE updatexy
		SET
			XX = #{xx},
			YY = #{yy}
	</update>







<delete id = "deleteBoardFile">
DELETE FROM T_BOARD_FILE 
WHERE BOARD_NO = #{boardNO}
AND BOARD_FILE_NO = #{boardFileNo}

</delete>




</mapper>

댓글 영역