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>

좋은 웹페이지 즐겨찾기