오늘 첫 수업은 이클립스로 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
}
}
'수업내용' 카테고리의 다른 글
20230628 수업내용 Up/DouwnloadFile🤣🤣🤣 (0) | 2023.06.28 |
---|---|
20230628 수업내용🫡🫡🫡 (0) | 2023.06.28 |
20230626 수업내용🤦♂️🤦♂️🤦♂️ (0) | 2023.06.26 |
20230623 수업내용😶🌫️😶🌫️😶🌫️ (0) | 2023.06.23 |
20230622 수업내용🤦♂️🤦♂️🤦♂️ (0) | 2023.06.23 |
댓글