BACK END/java spring(egov)

6. get방식으로 클라이언트로부터 받은 정보 DB저장

자코린이 2022. 4. 5. 16:03

이번에는 get방식을 사용해 클라이언트에게 받은 데이터를 DB에 저장하는 방법을 적어 보겠습니다.

저 혼자 만든 코드이므로 좋은 코드가 아닐 수 있습니다.

보충할 내용은 댓글로 달아주세요. 빠르게 확인하고 수정하겠습니다.

 

VO

package egovframework.example.sample.vo;

public class UpdateVO {
	private String barcode;
	private String box;
	private String stock;
	public String getBarcode() {
		return barcode;
	}
	public void setBarcode(String barcode) {
		this.barcode = barcode;
	}
	public String getBox() {
		return box;
	}
	public void setBox(String box) {
		this.box = box;
	}
	public String getStock() {
		return stock;
	}
	public void setStock(String stock) {
		this.stock = stock;
	}
	
}

 

Controller에 추가합니다. get방식을 사용하므로 아래 내용을 사용할 수 있습니다.(데이터가 head에 있어서)

하지만 받는 방식이 post면 아래에 몇가지를 더 추가하셔야 합니다.(데이터가 body에 있기 때문에)

  @RequestMapping(value="/updateStock.do", method = RequestMethod.GET)
    public void updateStock(HttpServletRequest request) throws Exception {
    	UpdateVO updateVo = new UpdateVO();
    	String barcode = request.getParameter("barcode");
    	String box = request.getParameter("box");
    	String stock = request.getParameter("stock");
    	
    	updateVo.setBarcode(barcode);
    	updateVo.setBox(box);
    	updateVo.setStock(stock);
    	
    	stockService.updateStock(updateVo);
    	
    }

 

DAO

public void updateStock(UpdateVO updateVo) throws Exception;

 

DAOImpl

@Override
    public void updateStock(UpdateVO updateVo) throws Exception {
    	StockMapper mapper = sqlSession.getMapper(StockMapper.class);
        mapper.updateStock(updateVo);
    }

 

Service

 //업데이트
	 public void updateStock(UpdateVO updateVo) throws Exception;

 

ServiceImpl

@Override
    public void updateStock(UpdateVO updateVo) throws Exception {
        stockDao.updateStock(updateVo);
    }

 

Mapper

public void updateStock(UpdateVO updateVo) throws Exception;

 

Mapper.xml

<!-- 매개변수 타입입니다. 결과 타입이 아니므로 새로만든 VO를 사용합니다.-->
<update id="updateStock" parameterType="egovframework.example.sample.vo.UpdateVO">
        UPDATE stock SET
        box = #{box}, stock = #{stock}
        WHERE barcode = #{barcode}
    </update>

 

클라이언트 html소스

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>getTest</title>
</head>
<body>
    <form action="http://localhost:8080/updateTest.do" method="get">
       
          <label for="barcode">Enter Barcode: </label>
          <input type="text" name="barcode" required>
        
          <label for="box">Enter Box: </label>
          <input type="text" name="box" required>
       
          <label for="stock">Enter Stcok: </label>
          <input type="text" name="stock" required>

          <input type="submit" value="Subscribe!">
        
      </form>
</body>
</html>

 

여기까지 하시면 DB에 업데이트가 잘 되는 것을 확인 하실 수 있습니다.

 

다시한번 말씀드리지만 코드가 좋지 않을 수 있습니다.

수정사항은 댓글로 알려주시면 빠르게 확인 후 수정하겠습니다.

감사합니다.