1. 배열 예시
공통 배열 데이터
String[] userArray = {"1","2","3"}
1-1. 배열 파라미터를 Map을 통해 넘겼을 경우
DAO
public List<Members> getAuthUserList(String[] userArray) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("userArray",userArray);
return sqlSession.selectList("getAuthUserList", map);
}
user-Mapper.xml
<select id="getAuthUserList" resultType="members">
SELECT m.*,a.name FROM members AS m
JOIN authority AS a ON m.authority = a.authority
WHERE m.authority IN
<foreach collection="userArray" item="arr" open="(" close=")" separator=",">
#{arr}
</foreach>
ORDER BY m.authority;
</select>
※ 주의 : collection을 꼭! 넘겨주는 배열 변수 값과 동일하게 작성하셔야 합니다.
1-2. 배열 파라미터를 직접 넘겼을 경우
DAO
public List<Members> getAuthUserList(String[] userArray) {
return sqlSession.selectList("getAuthUserList", userArray);
}
user-Mapper.xml
<select id="getAuthUserList" resultType="members">
SELECT m.*,a.name FROM members AS m
JOIN authority AS a ON m.authority = a.authority
WHERE m.authority IN
<foreach collection="array" item="arr" open="(" close=")" separator=",">
#{arr}
</foreach>
ORDER BY m.authority;
</select>
※ 주의 : collection을 꼭! "array"로 작성하셔야 합니다.
2. 리스트 예시
공통 리스트 데이터
List<Members> chkList = userService.getUserList(); //SELECT * FROM members 결과값
2-1. 리스트 Map을 통해 넘겼을 경우
DAO
public List<Members> getListTest(List<Members> chkList) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("chkList",chkList);
return sqlSession.selectList("getListTest", map);
}
user-Mapper.xml
<select id="getListTest" resultType="members">
SELECT m.*,a.name FROM members AS m
JOIN authority AS a ON m.authority = a.authority
WHERE m.authority IN
<foreach collection="chkList" item="item" open="(" close=")" separator=",">
#{item.authority}
</foreach>
ORDER BY m.authority;
</select>
리스트 안에 뽑고 싶은 결괏값을 {key.value} 형태로 뽑으시면 됩니다.
※ 주의 : collection을 꼭! 넘겨주는 리스트 변수 값과 동일하게 작성하셔야 합니다.
2-2. 리스트 파라미터를 직접 넘겼을 경우
DAO
public List<Members> getListTest(List<Members> chkList) {
return sqlSession.selectList("getListTest", chkList);
}
user-Mapper.xml
<select id="getListTest" resultType="members">
SELECT m.*,a.name FROM members AS m
JOIN authority AS a ON m.authority = a.authority
WHERE m.authority IN
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item.authority}
</foreach>
ORDER BY m.authority;
</select>
리스트 안에 뽑고 싶은 결괏값을 {key.value} 형태로 뽑으시면 됩니다.
※ 주의 : collection을 꼭! "list"로 작성하셔야 합니다.
'DB > mysql' 카테고리의 다른 글
[mysql] 인덱스 생성, 삭제, 확인 (0) | 2023.03.15 |
---|---|
프로시저(mysql대용량 insert) (0) | 2023.03.14 |
master slave 연동 확인하기 (0) | 2022.11.01 |
PROCESSLIST kill (1) | 2022.11.01 |
대용량csv을 Mysql에 import시키기 (0) | 2022.10.26 |