본문 바로가기
수업내용

20230627 수업내용🤣🤣🤣

by titlejjk 2023. 6. 27.

오늘 첫 수업은 이클립스로 jquery배우기

jquery로 이벤트 리스너 함수 등록이다.

마우스를 올렸을때 일어날 함수를 등록하는 예제

 

2교시 부터는 스프링수업

session영역에 저장되어있는 id값을 삭제해서 logout을 하는 메소드

@RequestMapping("/users/logout")
	public String logout(HttpSession session) {
		//세션에서 id라는 키값으로 저장된 값 삭제
		session.removeAttribute("id");
		return "users/logout";
	}

 

검색기능만들기

Mapper에 FileMapper 를 만들어준다.

WHERE title LIKE xxx OR orgFileName LIKE xxx   => 제목과 파일명 검색
WHERE title LIKE xxx     => 제목으로 검색
WHERE writer LIKE xxx    => 작성자로 검색

<?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="file">
	   <insert id="insert" parameterType="fileDto">
      INSERT INTO board_file
      (num, writer, title, orgFileName, saveFileName, fileSize, regdate)
      VALUES(board_file_seq.NEXTVAL, #{writer}, #{title}, 
         #{orgFileName}, #{saveFileName}, #{fileSize}, SYSDATE)
   </insert>
   <select id="getData" parameterType="int" resultType="fileDto">
      SELECT num,writer,title,orgFileName,saveFileName,fileSize,regdate
      FROM board_file
      WHERE num=#{num}
   </select>
   <delete id="delete" parameterType="int">
      DELETE FROM board_file
      WHERE num=#{num}
   </delete>
   <select id="getList" parameterType="fileDto" 
      resultType="fileDto">
      
      SELECT *
      FROM
         (SELECT result1.*, ROWNUM AS rnum
         FROM
            (SELECT num,writer,title,orgFileName,saveFileName,
               fileSize,regdate
            FROM board_file        
            <choose>
      			<when test="title != null and orgFileName != null">
      			WHERE title LIKE '%'||#{title}||'%' OR orgFileName LIKE '%' ||#{orgFileName}||'%'
      			</when>
      			<when test="title != null">
      			WHERE title LIKE '%'||#{title}||'%'
      			</when>
      			<when test="writer != null">
      			WHERE writer LIKE '%'||#{writer}||'%'
      			</when>
      		</choose>    
            ORDER BY num DESC) result1)
      WHERE rnum BETWEEN #{startRowNum} AND #{endRowNum}
   </select>
   <select id="getCount" parameterType="fileDto" resultType="int">
      SELECT NVL(MAX(ROWNUM), 0)
      FROM board_file
      <choose>
      	<when test="title != null and orgFileName != null">
      		WHERE title LIKE '%'||#{title}||'%' OR orgFileName LIKE '%' ||#{orgFileName}||'%'
      	</when>
      	<when test="title != null">
      		WHERE title LIKE '%'||#{title}||'%'
      	</when>
      	<when test="writer != null">
      		WHERE writer LIKE '%'||#{writer}||'%'
      	</when>
      </choose>
   </select>
</mapper>

select문을 통해 검색을 가능하게 만들었다.

file게시판을 만들어줄 controller, dao, dto, service, view package를 만들어준다.

 

FileDto에서 Defalute 생성자와 필드, getter, setter만들기

package com.gura.spring04.file.dto;

import org.springframework.web.multipart.MultipartFile;

public class FileDto {
	private int num;
	private String writer;
	private String title;
	//원본 파일명
	private String orgFileName;
	//파일 시스템에 저장된 파일명
	private String saveFileName;
	//파일의 크기
	private long fileSize;
	private String regdate;
	//페이징 처리를 위한 필드
	private int startRowNum;
	private int endRowNum;
	//파일 업로드 처리를 하기 위한 필드
	private MultipartFile myFile;
	//디폴트 생성자
	public FileDto() {}
	
	
	
	public FileDto(int num, String writer, String title, String orgFileName, String saveFileName, long fileSize,
			String regdate, int startRowNum, int endRowNum, MultipartFile myFile) {
		super();
		this.num = num;
		this.writer = writer;
		this.title = title;
		this.orgFileName = orgFileName;
		this.saveFileName = saveFileName;
		this.fileSize = fileSize;
		this.regdate = regdate;
		this.startRowNum = startRowNum;
		this.endRowNum = endRowNum;
		this.myFile = myFile;
	}



	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public String getWriter() {
		return writer;
	}
	public void setWriter(String writer) {
		this.writer = writer;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getOrgFileName() {
		return orgFileName;
	}
	public void setOrgFileName(String orgFileName) {
		this.orgFileName = orgFileName;
	}
	public String getSaveFileName() {
		return saveFileName;
	}
	public void setSaveFileName(String saveFileName) {
		this.saveFileName = saveFileName;
	}
	public long getFileSize() {
		return fileSize;
	}
	public void setFileSize(long fileSize) {
		this.fileSize = fileSize;
	}
	public String getRegdate() {
		return regdate;
	}
	public void setRegdate(String regdate) {
		this.regdate = regdate;
	}
	public int getStartRowNum() {
		return startRowNum;
	}
	public void setStartRowNum(int startRowNum) {
		this.startRowNum = startRowNum;
	}
	public int getEndRowNum() {
		return endRowNum;
	}
	public void setEndRowNum(int endRowNum) {
		this.endRowNum = endRowNum;
	}
	public MultipartFile getMyFile() {
		return myFile;
	}
	public void setMyFile(MultipartFile myFile) {
		this.myFile = myFile;
	}
	
}

 

Configuration.xml에서 FileMapper.xml추가해주기

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<!-- 자주사용하는 type의 별칭을 등록 해놓고 Mapper xml에서 사용할 수 있다. -->
	<typeAliases>
		<typeAlias type="com.gura.spring04.users.dto.UsersDto" alias="usersDto"/>
		<typeAlias type="com.gura.spring04.file.dto.FileDto" alias="fileDto"/>
	</typeAliases>
	
	<!-- sql 문을 작성한 Mapper xml 문서가 어디에 있는지 목록을 적성해야 한다. -->
	
	<mappers>
		<mapper resource="mapper/UsersMapper.xml"/>
		<mapper resource="mapper/FileMapper.xml"/>
	</mappers>
</configuration>

FileDao Interface완성시키기

package com.gura.spring04.file.dao;

import java.util.List;

import com.gura.spring04.file.dto.FileDto;

public interface FileDao {
	public void insert(FileDto dto);
	public FileDto getData(int num);
	public void delete(int num);
	public List<FileDto> getList(FileDto dto);
	public int getCount(FileDto dto);
}

 

FileDaoImpl Class 완성시키기

package com.gura.spring04.file.dao;

import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.gura.spring04.file.dto.FileDto;

@Repository
public class FileDaoIpml implements FileDao{

	@Autowired
	private SqlSession session;
	
	@Override
	public void insert(FileDto dto) {
		session.insert("file.insert", dto);
	}

	@Override
	public FileDto getData(int num) {
		
		return session.selectOne("file.getData", num);
	}

	@Override
	public void delete(int num) {
		session.delete("file.delete", num);
	}

	@Override
	public List<FileDto> getList(FileDto dto) {
		
		return session.selectList("file.getList", dto);
	}

	@Override
	public int getCount(FileDto dto) {
		return session.sele
	}

}

댓글