기존 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 |