본문 바로가기
study/Mybatis

[Mybatis] 25. Spring에 Mybatis 적용하기 [(주문, 장바구니) SaleDao.java, SaleMapper.java, SaleItemDao.java, SaleItemMapper.java]

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

SaleDao.java

package dao;

import java.util.List;

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

import dao.mapper.SaleMapper;
import logic.Sale;

@Repository
public class SaleDao {
	
	@Autowired //객체 주입. DI
	private SqlSessionTemplate template;
	private Class<SaleMapper> cls = SaleMapper.class;
	
	public int getMaxSaleId() {
		return template.getMapper(cls).MaxSaleId();
	}
	public void insert(Sale sale) {
		template.getMapper(cls).insert(sale);
	}
	public List<Sale> list(String id) {
		return template.getMapper(cls).list(id);
	}
}

SaleMapper.java

package dao.mapper;

import java.util.List;

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

import logic.Sale;

public interface SaleMapper {

	@Select ("select nvl(max(saleid),0) from sale")
	int MaxSaleId();

	@Insert("insert into sale (saleid, userid, saledate) values (#{saleid}, #{userid}, sysdate)")
	void insert(Sale sale);

	@Select("select * from sale where userid=#{userid} order by saleid desc")
	List<Sale> list(String id);
}

SaleItemDao.java

package dao;

import java.util.List;

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

import dao.mapper.SaleItemMapper;
import logic.SaleItem;

@Repository
public class SaleItemDao {
	@Autowired //객체 주입. DI
	private SqlSessionTemplate template;
	private Class<SaleItemMapper> cls = SaleItemMapper.class;
	
	public void insert(SaleItem saleitem) {
		template.getMapper(cls).update(saleitem);
	}
	public List<SaleItem> list(int saleid) {
		return template.getMapper(cls).list(saleid);
	}
}

SaleItemMapper.java

package dao.mapper;

import java.util.List;

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

import logic.SaleItem;

public interface SaleItemMapper {

	@Insert("insert into saleitem (saleid, seq, itemid, quantity) values (#{saleid}, #{seq}, #{itemid}, #{quantity})")
	void update(SaleItem saleitem);

	@Select("select * from saleitem where saleid=#{saleid}")
	List<SaleItem> list(int saleid);
}
728x90
반응형