본문 바로가기
study/Mybatis

[Mybatis] 25. Spring에 Mybatis 적용하기 [(상품)ItemDao.java, ItemMapper.java]

by 금이패런츠 2022. 5. 18.
728x90
반응형

ItemDao.java

package dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import dao.mapper.ItemMapper;
import logic.Item;
@Repository //@Component + db 관련 객체
public class ItemDao {
	@Autowired //객체 주입. DI
	private SqlSessionTemplate template;
	private Map<String,Object> param = new HashMap<String,Object>();
	public List<Item> list() {
		return template.getMapper(ItemMapper.class).select();
	}
	public Item selectOne(Integer id) {
		param.clear();
		param.put("id", id);
		return template.getMapper(ItemMapper.class).selectOne(param);
	}
	public int maxId() {
		return template.getMapper(ItemMapper.class).maxId();
	}
	public void insert(Item item) {
		template.getMapper(ItemMapper.class).insert(item);
	}
	public void update(Item item) {
		template.getMapper(ItemMapper.class).update(item);
	}
	public void delete(Integer id) {
		template.getMapper(ItemMapper.class).delete(id);
	}
}

ItemMapper.java

package dao.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import logic.Item;

public interface ItemMapper {

	@Select("select * from item")
	List<Item> select();

	@Select("select * from item where id=#{id}")
	Item selectOne(Map<String, Object> param); //select 결과 레코드가 한개만 가능
	
	@Select("select nvl(max(id),0) from item")
	int maxId();

	@Insert("insert into item (id, name, price, description, pictureUrl)"
			+ " values (#{id}, #{name}, #{price}, #{description}, #{pictureUrl})")
	void insert(Item item);

	@Update("update item set name=#{name}, price=#{price}, description=#{description},"
			+ "pictureUrl=#{pictureUrl} where id=#{id}")
	void update(Item item);

	@Delete("delete from item where id=#{id}")
	void delete(Integer id);
}
728x90
반응형