본문 바로가기
Spring

230206 Spring 예제 dao mybatis로 바꾸기

기존 service, dao 예제 mybatis로 바꾸기

mapper 만들고,

읽게.
root-context.xml에서

<!-- 마이바티스 관련 어노테이션을 찾아서 설정으로 등록 (모든 인터페이스를 등록)-->
	<mybatis-spring:scan base-package="com.simple.*"/>


로 바꿔서 전부 읽을 수 있도록


마이바티스는 매개변수가 무조건 하나!
mapper insert구문 @Param-매개변수 2개 이상일 때 반드시 이름 정해줘야 한다. vo타입에도 사용가능
이때, 인터페이스에서 매개변수로 @Param("변수명") String name으로 하고
xml에서 name=#{변수명}으로 사용한다.


mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-config.dtd">
 
 <!-- 마이바티스 부연 설정.  -->
 <configuration>
 	<typeAliases>
		<typeAlias type="com.simple.command.ScoreVO" alias="ScoreVO"/> 	
		<typeAlias type="com.simple.command.BoardVO" alias="BoardVO"/> 	
 	</typeAliases>
 </configuration>

 

ScoreMapper.java

package com.simple.score.mapper;

import java.util.ArrayList;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.simple.command.ScoreVO;

@Mapper //mybatis-scan
public interface ScoreMapper {
	
	public void regist(ScoreVO vo);
	public ArrayList<ScoreVO> getList();
	public void delete(int num);
	public void modify(@Param("a")int num, @Param("b")String name, @Param("c")String kor, @Param("d")String eng);
	
}

 

 

 

ScoreMapper.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="com.simple.score.mapper.ScoreMapper">
  	<insert id="regist">
  		insert into score(name,kor,eng)
  		values(#{name},#{kor},#{eng})
  	</insert>
  	
  	<select id="getList" resultType="ScoreVO">
  		select * from score order by num desc
  	</select>
  	
  	<delete id="delete">
  		delete from score where num=#{num}
  	</delete>
  
  	<update id="modify">
  		update score set name=#{b}, kor=#{c}, eng=#{d} where num=#{a}
  	</update>
  
  
  </mapper>

 

ScoreServiceImpl.java

package com.simple.score.service;

import java.util.ArrayList;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.simple.command.ScoreVO;
import com.simple.score.mapper.ScoreMapper;

//@Controller
//@Repository
//@Component
@Service("service") //빈의 이름명시
public class ScoreServiceImpl implements ScoreService {
	
	@Autowired
	ScoreMapper scoreMapper;

	@Override
	public void regist(ScoreVO vo) {
		
		scoreMapper.regist(vo);
	}

	@Override
	public ArrayList<ScoreVO> getList() {
		//ArrayList<ScoreVO> list=scoreMapper.getList();
		return scoreMapper.getList();
	}

	@Override
	public void delete(int num) {
		scoreMapper.delete(num);
	}

	@Override
	public void modify(int num, String name, String kor, String eng) {
		
		scoreMapper.modify(num, name, kor, eng);
	}

	
}

 

 

Mybatis는 DAO를 대신한다.

이렇게 작성해도 이전과 동일하게 동작한다.

'Spring' 카테고리의 다른 글

230207 Spring 경로 맞추기  (0) 2023.02.07
230206 Spring mybatis 실습  (0) 2023.02.06
230206 Spring MyBatis mapper  (0) 2023.02.06
230203 Spring Service, DAO 예제 DB연결  (0) 2023.02.03
230203 Spring과 MySQL 연결환경 구축과 테스트  (0) 2023.02.03