티스토리 뷰
MyBatis를 이용해 간단한 CRUD 기능을 구현해보자!
MemberRepository
@Mapper
public interface MemberRepository {
MemberResponseDto findById(Long id);
MemberResponseDto findByUsername(String username);
void update(MemberRequestDto dto);
void deleteById(Long id);
void deleteAll();
List<MemberResponseDto> findAll();
}
- findById: 멤버의 Id로 조회하기
- findByUsername: 멤버의 이름으로 조회하기
- update: MemberRequestDto를 받아 멤버 정보 수정
- deleteById: 해당 Id의 멤버를 삭제하기
- deleteAll: 테이블의 전체 멤버 삭제하기
- findAll(): 테이블의 전체 멤버 조회하기
Member.xml
<mapper namespace="example.mybatis.repository.MemberRepository">
// code
</mapper>
namespace에 Member.xml이 쓰이는 경로를 지정
findById
<select id="findById" parameterType="long" resultType="example.mybatis.dto.MemberResponseDto">
select * from member where id = #{id};
</select>
- select id="findById"
- MemberRepository 내 메소드 findById()에서 위의 코드를 사용한다.
- parameterType="long", resultType="example.mybatis.dto.MemberResponseDto"
- MemberResponseDto findById(Long id);
- 매개 변수 타입은 Long이고, 반환 타입은 직접 작성한 MemberResponseDto이기 때문에 알맞은 값 설정
- select * from member where id = #{id}
- 해당 id를 가진 멤버의 모든 정보를 조회한다.
findById()를 xml 파일 작성 없이 어노테이션으로 해결하고 싶다면 MemberRepository에서 아래와 같이 수정하면 된다.
@Select("select * from member where id = #{id}")
MemberResponseDto findById(Long id);
위와 같은 원리로 나머지 기능도 쉽게 구현할 수 있다.
findByUsername
<select id="findByUsername" parameterType="String" resultType="example.mybatis.dto.MemberResponseDto">
select * from member where username = #{username};
</select>
이것도 간단하게 어노테이션으로 해결한다면 MemberRepository에서 수정 가능하다.
@Select("select * from member where username = #{username}")
MemberResponseDto findByUsername(String username);
findAll
<select id="findAll" resultType="example.mybatis.dto.MemberResponseDto">
select *
from member
order by id DESC
</select>
- order by id DESC
- id 내림차순으로 멤버 전체 조회 결과를 반환
어노테이션 기반으로 수정한다면
@Select("select * from member order by id DESC")
List<MemberResponseDto> findAll();
update
<update id="update" parameterType="example.mybatis.dto.MemberRequestDto">
update member
set username = #{username},
age = #{age},
address = #{address}
where
id = #{id}
</update>
어노테이션 사용 시 MemberRepository
@Update("update member set username=#{username}, age=#{age}, address=#{address} where id=#{id}")
void update(MemberRequestDto dto);
deleteById, deleteAll
<delete id="deleteById" parameterType="long">
delete from member where id = #{id}
</delete>
<delete id="deleteAll">
delete from member
</delete>
어노테이션 사용 시 MemberRepository
@Delete("delete from member where id=#{id}")
void deleteById(Long id);
@Delete("delete from member")
void deleteAll2();
이처럼 생각보다 간단하게 사용할 수 있다.
다음엔 좀 더 심화된 기능을 구현해봐야겠다.
'Database' 카테고리의 다른 글
Persistence Framework (0) | 2023.02.21 |
---|
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- dijkstra
- IntelliJ
- HTTP
- Programming
- Test
- 자료구조
- TopologicalSort
- db
- aws
- 위상정렬
- xml
- C++
- solid
- Singleton
- 알고리즘
- 소셜로그인
- Spring
- Android
- Network
- S3
- REST
- configuration
- Java
- BeanDefinition
- mybatis
- 안드로이드
- API
- codedeploy
- hoppy
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함