mybatis 3

[Mybatis][Mysql] <[![CDATA[…]]> ์‚ฌ์šฉ๋ฒ•/CDATA ๊ผญ ์จ์•ผํ•˜๋‚˜?/XML Parser ๋ฌธ์ž์—ด์ธ์‹

๋ฐฑ์—”๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  Back logic์„ ์ž‘์„ฑํ•  ์ผ์ด ๋งŽ์•„์ง€๋Š”๋ฐ ๊ทธ๋•Œ, SQL Mapper๋กœ MyBatis๋ฅผ ์“ฐ๋ฉด์„œ mapper.xml ํŒŒ์ผ์— ๋ผ๊ณ  ์“ฐ์ธ ๊ฒƒ์„ ์ž์ฃผ ๋ณด์•˜์„ ๊ฒƒ์ด๋‹ค. [๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๋œฌ๊ธˆ์—†๋Š” ํ˜ธ๊ธฐ์‹ฌ 1ํƒ„] Mybatis ๋ชจ๋“  ์ฟผ๋ฆฌ๋ฌธ์— ๊ผญ CDATA๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ? CDATA ๋ž€? ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ '', '&'๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธฐ๋Š”๋ฐ xml์—์„œ ๊ทธ๋ƒฅ ์‚ฌ์šฉํ•˜๋ฉด mapper์— ์ž‘์„ฑ๋œ , ์™€ ๊ฐ™์€ ํƒœ๊ทธ๋กœ ์ธ์‹ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด mapper.xml์— ์ž‘์„ฑ๋œ ํƒœ๊ทธ ๊ด„ํ˜ธ์™€ ๋‹ฌ๋ฆฌ ์ด ๋“ฑํ˜ธ๋Š” '์ฟผ๋ฆฌ์— ํ•„์š”ํ•œ ์ฝ”๋“œ'๋ผ๊ณ  ์•Œ๋ ค์ค˜์•ผ ํ•œ๋‹ค. ๊ทธ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ด๋‹ค. ์‚ฌ์šฉ๋ฒ• XML์—์„œ ํŒŒ์‹ฑ ํ•  ๋Œ€์ƒ์œผ๋กœ ์ธ์‹ํ•˜์ง€ ํ•˜์ง€ ์•Š๋„๋ก ๊ทธ ๊ตฌ์—ญ์„ ์ง€์ •ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด CDATA์ด๋‹ค. XML๋กœ ํŒŒ์‹ฑ์„ ์›ํ•˜์ง€..

[Mybatis][iBatis] org.apache.ibatis.binding.BindingException ์—๋Ÿฌํ•ด๊ฒฐ - ๋‹ค์ค‘ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ์ฒด(DTO, String)๋„˜๊ธฐ๊ธฐ

org.mybatis.spring.MyBatisSystemException : nested exception is ... ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๋ถ„๋ช… mybatis parameter Binding ์˜ค๋ฅ˜๊ฐ€ ๋‚œ ์ ์ด ์—†์—ˆ๋Š”๋ฐ;;; ์˜ค๋žœ๋งŒ์— ๊ตฌ๊ธ€๋งํ•˜์—ฌ ๊ณต๋ฐฑ์ด ์žˆ๋Š”์ง€.. ๋งˆ๊ฐํƒœ๊ทธ๋Š” ์ž˜ ๋‹ซํ˜€์žˆ๋Š”์ง€,, ์ผ๋ฐ˜์ ์œผ๋กœ ํ™•์ธํ•  ๋ถ€๋ถ„๋“ค์„ ํ•œ์ฐธ ํ™•์ธํ•˜๊ณ  ๋‚˜์„œ๋„ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค... ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ์•„๋ž˜ ์‚ฌ์‹ค์„ ๊ฐ„๊ณผํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ณ , ๊ฒธํ—ˆํ•œ ๋งˆ์Œ์œผ๋กœ ๋‹ค์‹œ ๋ฐฐ์šฐ๊ณ ์ž ํ•œ๋‹ค. MyBatis์™€ iBatis๋Š” ๋‘ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋ฉฐ, ๊ฐ๊ฐ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „์— ๋”ฐ๋ผ ๋™์ž‘ ๋ฐฉ์‹์ด ์กฐ๊ธˆ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์— ๋Œ€ํ•œ ๊ทœ์น™ ๋ฐ ๊ธฐ๋ณธ ์„ค์ •๋„ ์ด ๋‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐ„์— ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜ 3.0.0 ๊ธฐ์ค€์—์„œ๋Š” ๋ณ„๋„์˜ ์–ด๋…ธํ…Œ์ด์…˜์„ ์„ค์ •ํ•˜์ง€..

[Mybatis] XMLํƒœ๊ทธ <choose>, <when>, <otherwise>๋กœ ๋™์ ์ฟผ๋ฆฌ Dynamic SQL ๊ตฌํ˜„ํ•˜๊ธฐ

์ž๋ฐ” ์ธํ„ฐํŽ˜์ด์Šค Mapper๋ฅผ ํ†ตํ•ด ์ฟผ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ, ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฐ”์ธ๋”ฉํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ๋” ํšจ์œจ์ ์ธ ์ฟผ๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์™œ๋ƒ๋ฉด... ์ˆ˜์ •ํ•  ๋•Œ ํ•˜๋‚˜ ๋ฐ”๊พธ๋ฉด ๋‹ค ๋ฐ”๋€Œ๋Š” ๊ฒŒ ์ข‹์ž–์•„์š”? ๊ฐœ๋ฐœ์ž๋Š”... ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š์ง€ :) ๊ตฌ์กฐ ๋ฐ ์‚ฌ์šฉ๋ฒ• ์ฟผ๋ฆฌ1 ์ฟผ๋ฆฌ2 ์ฟผ๋ฆฌ3 ์ฟผ๋ฆฌ4 ์ฟผ๋ฆฌ5 ํƒœ๊ทธ๋Š” ํƒœ๊ทธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋ฉฐ, ์กฐ๊ฑด์„ ์—ฌ๋Ÿฌ ๋ฒˆ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์‹คํ–‰ ์‹œ ํƒœ๊ทธ์˜ ์กฐ๊ฑด์‹์„ ์ˆœ์„œ๋Œ€๋กœ ํ™•์ธํ•˜๋ฉฐ ์ฟผ๋ฆฌ๋ฌธ์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค. ๋งŒ์•ฝ ํƒœ๊ทธ์˜ ์กฐ๊ฑด ์‹์ค‘ true ๋ฐ˜ํ™˜ํ•œ ๊ฒƒ์ด ์—†๋‹ค๋ฉด ํƒœ๊ทธ ๋‚ด์— ์ž‘์„ฑ๋œ ์ฟผ๋ฆฌ๋ฌธ์ด ์‹คํ–‰๋œ๋‹ค. ํƒœ๊ทธ๋Š” ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค. ์ ์šฉ ์˜ˆ์ œ XML AND TISTORY_CODE = '*' AND TISTORY_CODE = '1' AND TISTORY_CODE = '0' ORDER BY BASE_YMD My..