Spring 2022/03/30 ItemImage(1번용)
컨트롤러 -> VIEW -> SERVICE
파일명 ItemImageDTO.java
package com.example.dto;
import java.util.Date;
import lombok.Data;
@Data
public class ItemImageDTO {
// 물품이미지코드
private Long imgcode;
// 등록일
private Date iregdate;
// 이미지
private byte[] iimage;
// 이미지크기
private Long iimagesize = 0L;
// 이미지타입
private String iimagetype;
// 이미지명
private String iimagename;
// 물품코드
private Long icode;
}
파일명 ItemImageService.java
package com.example.service;
import java.util.List;
import com.example.dto.ItemImageDTO;
import org.springframework.stereotype.Service;
@Service
public interface ItemImageService {
// 이미지 일괄 추가
public int insertItemImageBatch( List<ItemImageDTO> list);
// 이미지 1개 가져오기
public ItemImageDTO selectItemImageOne( long imgcode );
// 이미지 1개 수정
public int updateItemImageOne( ItemImageDTO itemimage );
// 이미지 1개 삭제
public int deleteItemImageOne( long imgcode );
// 물품 코드가 일치하는 모든 이미지코드 가져오기
public List<Long> selectItemImageList(long icode);
}
파일명 ItemImageServiceImpl.java
package com.example.service;
import java.util.List;
import com.example.dto.ItemImageDTO;
import org.apache.ibatis.session.SqlSessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ItemImageServiceImpl implements ItemImageService {
@Autowired
SqlSessionFactory sqlFactory;
@Override
public int insertItemImageBatch(List<ItemImageDTO> list) {
int cnt = 0;
for( ItemImageDTO item : list){ // 3번 반복
// 시퀀스값 가져오기
long seq = sqlFactory.openSession().selectOne("ItemImage.seqItemImage");
// 시퀀스값 추가하기
item.setImgcode(seq);
cnt = cnt + sqlFactory.openSession().insert("ItemImage.insertItemImageOne",item);
}
if(list.size() == cnt) {
return 1;
}
return 0;
}
@Override
public ItemImageDTO selectItemImageOne(long imgcode) {
return sqlFactory.openSession().selectOne("ItemImage.selectItemImageOne", imgcode);
}
@Override
public int updateItemImageOne(ItemImageDTO itemimage) {
return sqlFactory.openSession().update("ItemImage.updateItemImageOne", itemimage);
}
@Override
public int deleteItemImageOne(long imgcode) {
return sqlFactory.openSession().delete("ItemImage.deleteItemImageOne", imgcode);
}
@Override
public List<Long> selectItemImageList(long icode) {
return sqlFactory.openSession().selectList("ItemImage.selectItemImageList", icode);
}
}
파일명 itemimageMapper.xml
<?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="ItemImage">
<select id="seqItemImage" resultType="long">
SELECT SEQ_ITEMIMAGE_ICODE.NEXTVAL FROM DUAL
</select>
<insert id="insertItemImageBatch" parameterType="list">
INSERT ALL
<foreach collection="list" item="obj" separator=" ">
INTO ITEMIMAGE(IMGCODE, IIMAGE, IIMAGESIZE, IIMAGETYPE, IIMAGENAME, ICODE)
VALUES (#{obj.imgcode}, #{obj.iimage, jdbcType=BLOB}, #{obj.iimagesize}, #{obj.iimagetype}, #{obj.iimagename}, #{obj.icode} )
</foreach>
SELECT * FROM DUAL
</insert>
<insert id="insertItemImageOne" parameterType="com.example.dto.ItemImageDTO">
INSERT INTO ITEMIMAGE( IMGCODE, IIMAGE, IIMAGESIZE, IIMAGETYPE, IIMAGENAME, ICODE)
VALUES ( #{imgcode}, #{iimage, jdbcType=BLOB}, #{iimagesize},
#{iimagetype}, #{iimagename}, #{icode} )
</insert>
<select id="selectItemImageList" parameterType="long" resultType="long">
SELECT IMGCODE FROM ITEMIMAGE WHERE ICODE = #{icode}
</select>
<select id="selectItemImageOne" parameterType="long" resultType="com.example.dto.ItemImageDTO">
SELECT * FROM ITEMIMAGE WHERE IMGCODE = #{imgcode}
</select>
<update id="updateItemImageOne" parameterType="com.example.dto.ItemImageDTO">
UPDATE ITEMIMAGE SET
IIMAGESIZE = #{iimagesize}
IIMAGETYPE = #{iimagetype}
IIMAGENAME = #{iimagename}
IIMAGE = #{iimage, jdbcType=BLOB}
WHERE IMGCODE = #{imgcode}
</update>
<delete id="deleteItemImageOne" parameterType="long">
DELETE FROM ITEMIMAGE WHERE IMGCODE = #{imgcode}
</delete>
</mapper>
Author And Source
이 문제에 관하여(Spring 2022/03/30 ItemImage(1번용)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@anrkfl/Spring-20220330-ItemImage저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)