๋ชฉ์ฐจ

์๋ฅผ ๋ค์ด Stringํ์ ์ "status"์ Longํ์ ์ no, 2๊ฐ์ parameter๊ฐ์ ๋ฐ์์ ํ ์ด๋ธ ์ ๋ฐ์ดํธ ํ๋ ค๋ ๋ก์ง์ด ์์ ์ VO์งธ๋ก ๋๊ธฐ๊ธฐ์ ๋ญ๊ฐ ๋นํจ์จ์ ์ด๊ณ ๋ค๋ฅธ์ฌ๋์ด ์ฝ๋๋ฅผ ๋ดค์ ๋๋ ์ง๊ด์ ์ด์ง ์์ ๋ณด์๋ค.
๋ฌผ๋ก ์ถํ์ ๋๊ธฐ๋ parameter๊ฐ์ด ์ถ๊ฐ๋ ๊ฒฝ์ฐ์ VO์งธ๋ก ๋๊ธฐ๋๊ฒ ํ์ฅ์ฑ์ด ์๊ฒ ์ง๋ง ์ด ๊ธฐ๋ฅ์ ๊ทธ๋ฐ๊ฒ ์๋์๋ค.
๊ทธ๋์ ๊ตฌ๊ธ๋ง ํ๋ค๊ฐ ์ญ์๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ ๋ฏธ๋์ ๋ด๊ฐ ๋ณด๊ธฐ์ํด ๊ธฐ๋กํ๋ค.
1. HashMap ์ด์ฉ ๐
Controller์์ HashMap์ ๋ด์์ ๋๊ธฐ๋ ๋ฐฉ๋ฒ
Controller
HashMap์ parameter๊ฐ ๋ด์์ ์ ๋ฌ
HashMap<String, Object> param = new HashMap<>();
param.put("no", no);
param.put("status", status);
Service
public void updateStatus(HashMap<String, Object> param) throws Exception;
impl
public void updateStatus(HashMap<String, Object> param) throws Exception {
userMapper.updateStatus(param);
}
Mapper
public void updateStatus(HashMap<String, Object> param);
xml
parameterType์ "HashMap"์ผ๋ก ์ค์
<update id="updateStatus" parameterType="HashMap">
UPDATE member
SET status = #{status, jdbcType=VARCHAR}
WHERE no = #{no, jdbcType=BIGINT}
</update>
2. @Param ์ด์ฉ ๐
Controller์์ parameter๊ฐ 2๊ฐ๋ฅผ ๊ฐ๊ฐ ๋๊ธฐ๊ณ mapper์์ @Param ์ด๋ ธํ ์ด์ ์ ์ฉ, xml์์ parameterType์ map์ผ๋ก ์์ฑ
Controller
userService.updateStatus(no, status);
Service
public void updateStatus(Long no, String status) throws Exception;
impl
public void updateStatus(Long no, String status) throws Exception {
userMapper.updateStatus(no, status);
}
mapper
๋๊ธธ parameter๊ฐ์ @Param ์ ์ฉ
import org.apache.ibatis.annotations.Param;
public void updateStatus(@Param("no") Long no, @Param("status")String status);
xml
parameterType์ "map"์ผ๋ก ์ค์
<update id="updateStatus" parameterType="map">
UPDATE member
SET status = #{status, jdbcType=VARCHAR}
WHERE no = #{no, jdbcType=BIGINT}
</update>
๊ธฐํ, parameter ์ค ๋ฐฐ์ด์ด ์๋ ๊ฒฝ์ฐ
[ex](Long memNo, Long[] ClientNo)๋ฅผ ๋๊ธฐ๋ ๊ฒฝ์ฐ
DB์ insert ์ param๊ฐ 2๊ฐ๋ฅผ ๋ฐ๋๋ฐ ๊ทธ ์ค 1๊ฐ๋ ๋จ์ผ๊ฐ, ๋๋จธ์ง 1๊ฐ๋ ๋ฐฐ์ด๋ก ๋ฐ๋ ๊ฒฝ์ฐ์์
ํ๋๊ฐ์ด 2๊ฐ๋ฐ์ ์์ด์ DTO๋ฅผ ๋ง๋ค๊ธฐ๋ ๊ท์ฐฎ์์
์ค๋ ์ฝ์ง ๋์ ๋ด๊ฐ ์๋ํ ๋ฐฉ๋ฒ์ ์๋์ฒ๋ผ ์ฒ๋ฆฌํ์(๋ฌผ๋ก ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ ์์)
Controller
@RequestParam(required = true) Long[] code_seq,
์๋ต...
// ํ
์ด๋ธ ์ ์ฅ ์ selectKey๋ก ๋ฝ์ ๊ฐ์ด VO์ ์ ์ฅ๋จ
TestService.insert(VO);
// ๋งคํ ํ
์ด๋ธ ์ ์ฅ ์ ์์ vo์ ๋ด๊ธด seq๊ฐ์ ๋๊น, code_seq๋ ํด๋ผ์ด์ธํธ์์ ๋ฐ๋ ๋ฐฐ์ด๊ฐ
Service.insertMapping(VO.getSeq(), code_seq);
service
public void insertMapping(Long seq, Long[] code_seq) throws Exception {
Mapper.insertMapping(seq, code_seq);
}
mapper
์ญ์ parameter๊ฐ์ด 1๊ฐ ์ด์์ด๋ผ @param์ ๋ช ์ํจ
public void insertMapping(@Param("seq") Long seq, @Param("code_seq") Long[] code_seq);
xml
<insert id="insertMapping" parameterType="map">
INSERT INTO mapping
(
seq,
code_seq,
reg_date
)
VALUES
<!-- ์ด ๊ฒฝ์ฐ๋ collection์ array๊ฐ ์๋๋ผ parameter๊ฐ์ผ๋ก ๋๊ธด ๋ณ์๋ช
์ ์
๋ ฅํด์ผ ํจ-->
<foreach collection="code_seq" item="code_seq" separator=",">
(
#{seq}, <!-- ๋จ์ผ๊ฐ์ผ๋ก ๋๊ธด param๊ฐ -->
#{code_seq}, <!-- ๋ฐฐ์ด๋ก ๋๊ธด param๊ฐ -->
NOW()
)
</foreach>
</insert

๊ฐ์ธ ์คํฐ๋ ๊ธฐ๋ก์ ๋ฉ๋ชจํ๋ ๊ณต๊ฐ์ด๋ผ ํ๋ฆฐ์ ์ด ์์ ์ ์์ต๋๋ค.
ํ๋ฆฐ ์ ์์ ๊ฒฝ์ฐ ๋๊ธ ๋ถํ๋๋ฆฝ๋๋ค.
'IT > development' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Spring] spring REST API ๊ณต๋ถ(feat. @RestController) (0) | 2022.11.22 |
|---|---|
| [springBoot] ์ ํจ์ฑ ๊ฒ์ฆ(feat. @Valid, Validated) (0) | 2022.11.22 |
| [mybatis] ์์ธ ์กฐํ ์ ๋ณต์๊ฐ ์ถ๊ฐ ์กฐํ(feat. vo & map) (0) | 2022.11.22 |
| [JavaScript] Ajax ๊ฒฐ๊ณผ๊ฐ ๋ณ์ ์ ์ฅ (0) | 2022.11.22 |
| [JavaScript] submit control(feat. onsubmit) (0) | 2022.11.22 |
๋๊ธ