김갱환
맨땅에 코딩
김갱환
전체 방문자
오늘
어제
  • 분류 전체보기 (239)
    • ⁂ 맨땅에 코딩 (11)
      • : Story (3)
      • : MiniProject 'MyWeb' (1)
      • : Final Project (5)
      • : Josa-Moa 한국어 조사 처리 프로젝트 (1)
    • —————Frontend——————————————.. (0)
    • ⁂ HTML (10)
      • : 기본 익히기 (10)
    • ⁂ CSS (15)
      • : 기본 익히기 (15)
    • ⁂ Java Script (32)
      • : 기본 익히기 (28)
      • : 자바스크립트 라이브러리 (1)
      • : 연습 문제 (3)
    • ⁂ jQuery (11)
      • : 기본 익히기 (11)
    • ⁂ Bootstrap (3)
      • : 기본 익히기 (3)
    • ⁂ TailWind CSS (1)
    • ⁂ AJAX (5)
      • : 기본 익히기 (5)
    • ⁂ Vue.js (3)
      • : 기본 익히기 (3)
    • —————DB : Data Base————————.. (0)
    • ⁂ Oracle DB (27)
      • : 기본 익히기 (24)
      • : 연습 문제 (3)
    • ⁂ MyBatis Framework (15)
      • : 기본 익히기 (15)
    • —————Backend———————————————.. (0)
    • ⁂ Java (62)
      • : 기본 익히기 (42)
      • : JDBC - Java DataBase Conn.. (4)
      • : Crawling (2)
      • : 독학으로 공부하기(과거) (11)
      • : 연습문제 (3)
    • ——————Web————————————————— (0)
    • ⁂ JSP (28)
      • : 기본 익히기 (28)
    • ⁂ Spring FrameWork (15)
      • : Legacy Project (1)
      • : 기본 익히기(Boot 기반) (14)
    • ——————————————————————— (0)
    • ⁂ Error Note (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 백앤드
  • 코딩공부 #코딩 #자바 #자바독학 #자바공부 #개발자 #프론트앤드 #백앤드 #풀스택
  • ErrorPage
  • 코딩 #코딩공부 #상수 #리터럴 #형변환 #개발자 #자바 #자바공부 #자바독학
  • 코딩공부
  • 자바공부
  • 코딩공부 #자바공부
  • web.xml수정
  • 프론트앤드
  • httperror
  • 객체지향프로그래밍
  • HTML공부
  • 비트연산자 #코딩공부 #자바공부 #코딩 #자바 #프로그래밍 #개발자
  • http에러메세지
  • 코딩
  • 코딩 #코딩공부 #프론트앤드 #백앤드 #풀스택개발자
  • 풀스택
  • 연산자 #기본연산자 #코딩 #자바 #독학 #자바공부 #자바연산자
  • 개발자
  • 자바

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
김갱환

맨땅에 코딩

⁂ MyBatis Framework/: 기본 익히기

[MyBatis3] #4-4 파일 업로드 및 댓글 게시판 만들기 : 상품 등록 페이지

2022. 11. 11. 10:20

 

1. Model

 * 짚고 넘어갈 뽀인트

-  xml에 sql문 구현(MyBatis 활용) : #{변수명}들은 DAO에서 넘어옴.

 

1) product.xml

<insert id="insert">
    INSERT INTO product(product_code, product_name, description, price, filename, filesize)
    VALUES (product_seq.nextval, #{product_name}, #{description}, #{price}, #{filename}, #{filesize})
</insert>

 

2) productDAO.java

public void insert(Map<String, Object> map) {
    sqlSession.insert("product.insert", map);
} // insert() end

 

 

 

2. View

 * 짚고 넘어갈 뽀인트

- 코드를 잘 살펴보기만 하면 될듯!

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>write.jsp</title>
	<link href="../css/main.css" rel="stylesheet" type="text/css">
</head>
<body>
	<h3>상품 등록</h3>
	<p>
		<button type="button" onclick="location.href='list'">상품전체목록</button>
	</p>
	
	<form name="form1" method="post" action="insert" enctype="multipart/form-data">
	<table border="1">
	<tr>
		<td>상품명</td>
		<td><input type="text" name="product_name"></td>
	</tr>
	<tr>
		<td>상품가격</td>
		<td><input type="number" name="price"></td>
	</tr>
	<tr>
		<td>상품설명</td>
		<td>
			<textarea rows="5" cols="60" name="description"></textarea>
		</td>
	</tr>
	<tr>
		<td>상품사진</td>
		<td><input type="file" name="img"></td>
	</tr>
	<tr>
		<td colspan="2" align="center">
			<input type="submit" value="상품등록">
		</td>
	</tr>
	</table>
	</form>
	
</body>
</html>

 

 

3. Controller

 * 짚고 넘어갈 뽀인트

- write 명령어 생성(product/write.jsp 연결)

- insert 명렁어 생성(안에서 선언되는 매개변수를 잘 살펴보자!, 만약 DTO를 만들어 사용한다면 @ModelAttribute productDTO dto 를 매개변수로 사용했을 것이다).

- 파일 처리에 대해선 코드를 잘 익숙해져야할 것이다.

// 결과 확인 http://localhost:9095/product/write
// 상품 업로드 시 리네임이 되지 않기 때문에 동일한 파일명은 업로드하면 안된다
@RequestMapping("/write")
public String write() {
    return "product/write";
} // write() end

@RequestMapping("/insert")
public String insert(@RequestParam Map<String, Object> map
                    ,@RequestParam MultipartFile img
                    ,HttpServletRequest req) {

    String filename = "-";
    long filesize = 0;
    if(img != null && !img.isEmpty()) {
        filename = img.getOriginalFilename();
        filesize = img.getSize();
        try {
            ServletContext application = req.getSession().getServletContext();
            String path = application.getRealPath("/storage");
            img.transferTo(new File(path+"\\"+filename));
        } catch (Exception e) {
            System.out.print("파일 등록 실패 : ");
            e.printStackTrace(); // 에러 출력 메서드
        } // try end			
    } // if end

    map.put("filename", filename);
    map.put("filesize", filesize);
    productDao.insert(map);
    return "redirect:/product/list";
} // insert() end

 

저작자표시 비영리 동일조건 (새창열림)

'⁂ MyBatis Framework > : 기본 익히기' 카테고리의 다른 글

[MyBatis3] #4-6 파일 업로드 및 댓글 게시판 만들기 : 상품 상세보기 페이지  (0) 2022.11.11
[MyBatis3] #4-5 파일 업로드 및 댓글 게시판 만들기 : 검색 기능 넣기  (0) 2022.11.11
[MyBatis3] #4-3 파일 업로드 및 댓글 게시판 만들기 : 상품 목록 페이지  (0) 2022.11.11
[MyBatis3] #4-2 파일 업로드 및 댓글 게시판 만들기 : 첫 페이지 만들기  (0) 2022.11.10
[MyBatis3] #4-1 Spring Boot + MyBatis Framework 기반 파일 업로드 및 댓글 게시판 만들기 : 환경설정  (0) 2022.11.10
    '⁂ MyBatis Framework/: 기본 익히기' 카테고리의 다른 글
    • [MyBatis3] #4-6 파일 업로드 및 댓글 게시판 만들기 : 상품 상세보기 페이지
    • [MyBatis3] #4-5 파일 업로드 및 댓글 게시판 만들기 : 검색 기능 넣기
    • [MyBatis3] #4-3 파일 업로드 및 댓글 게시판 만들기 : 상품 목록 페이지
    • [MyBatis3] #4-2 파일 업로드 및 댓글 게시판 만들기 : 첫 페이지 만들기
    김갱환
    김갱환
    코딩의 코자도 모르는 이의 공부 기록장

    티스토리툴바