header-img
Info :
mybatis 3
Springboot, Mybatis :: ๋ถ€๋“ฑํ˜ธ, ๋น„๊ต์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ๋ฐฉ๋ฒ• 1
2024.02.02
์ฟผ๋ฆฌ๋ฌธ์„ ์ž‘์„ฑํ•˜๋‹ค๋ณด๋ฉด ๋น„๊ต๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธฐ๋Š”๋ฐ.. ๋งˆ์ด๋ฐ”ํ‹ฐ์Šค์—์„œ๋Š” , WITH CTE(WorkDate) AS ( SELECT CONVERT ( DATE, #{Year}+'-01-01') UNION ALL SELECT DATEADD(d, 1, WorkDate) FROM CTE WHERE WorkDate (CONVERT(DATE, #{Year}+'-12-31')) ) SELECT * FROM CTE OPTION ( MAXRECURSION 0 ); ๋‘˜. WITH CTE(WorkDate) AS ( SELECT CONVERT ( DATE, #{Year}+'-01-01') UNION ALL SELECT DATEADD(d, 1, WorkDate) FROM CTE WHERE ) SELECT * FROM CTE..
MSSQL, Mybatis :: DBํˆด๊ณผ ์›น์—์„œ์˜ ์ฟผ๋ฆฌ ์†๋„๊ฐ€ ๋‹ค๋ฅผ ๋•Œ ๊ณ ๋ คํ•  ๊ฒƒ
2024.01.16
์ฟผ๋ฆฌ์†๋„๋Š” 00:00:06 ์ดˆ ์ •๋„๋กœ ์งง๊ฒŒ ๋‚˜์˜ค๋Š”๋ฐ API ์‹คํ–‰ ์†๋„๋Š” 48์ดˆ๊ฐ€ ๋‚˜์˜ค๋Š” ์ผ€์ด์Šค๊ฐ€ ๋ฐœ์ƒ. ๋ฌผ๋ก  ๊ฑด ์ˆ˜๊ฐ€ ๋งŽ์€ SQL์ด๊ธฐ๋Š” ํ–ˆ์ง€๋งŒ, ์ฟผ๋ฆฌ ์†๋„์™€ API ์†๋„๊ฐ€ ์ด๋ ‡๊ฒŒ ๋น„๋ก€ํ•˜์ง€ ์•Š๋Š” ์ผ€์ด์Šค๋Š” ์ฒ˜์Œ์ด์—ˆ์Œ. -- ์ด๋Ÿฐ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๋Œ€๋ถ€๋ถ„ Where ์ ˆ์˜ ์กฐ๊ฑด์ด VARCHAR๋กœ ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ MSSQL ์˜ ํŠน์ง• MSSQL์˜ ๊ฒฝ์šฐ VARCHARํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๊ตํ•  ๋•Œ NVARCHARํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„๊ตํ•œ๋‹ค๊ณ  ํ•จ. ์ฆ‰, ๋ฐ์ดํ„ฐ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๊ฐ€๋ณ€์œผ๋กœ ํ• ์ง€ ์•„๋‹์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž„. ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋งˆ๋‹ค ๊ฐ•์ œ์ ์œผ๋กœ ํƒ€์ž… ์บ์ŠคํŒ…์ด ์ผ์–ด๋‚˜๊ณ , ์ˆ˜ํ–‰๋˜๋Š” ์ฟผ๋ฆฌ์˜ ํƒ€์ž…์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— INDEX๋ฅผ ์•ˆํƒ€๊ฒŒ ๋จ. ใ… -ใ… .. ์ฟผ๋ฆฌ ํŠœ๋‹์„ ์•„๋ฌด๋ฆฌํ•ด๋„ DB ์†๋„๋Š” ๋นจ๋ผ์ง€๋Š”๋ฐ, API ํ˜ธ์ถœ ์†๋„๋Š” ํฌ๊ฒŒ..
Mybatis :: ๋‹ฌ๋Ÿฌ($)์™€ ์ƒต(#)์˜ ์ฐจ์ด
2024.01.16
ํŒŒ๋ผ๋ฏธํ„ฐ ๋งคํ•‘์„ ํ•˜๋Š” ๋ฐ์— ์‚ฌ์šฉํ•˜๋Š” $์™€ # ๋‘๊ฐ€์ง€์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. # PreparedStatement๋ฅผ ์˜๋ฏธ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ String ํ˜•ํƒœ๋กœ ๋“ค์–ด์™€ ์ž๋™์œผ๋กœ(' ') ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•ํƒœ๊ฐ€ ๋จ #{user_id} ์˜ ๊ฐ’์ด 'neeon'์ด๋ผ๋ฉด user_id = 'neeon' ํ˜•ํƒœ๊ฐ€ ๋จ ์ฟผ๋ฆฌ ์ฃผ์ž…์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ์–ด ๋ณด์•ˆ ์ธก๋ฉด์—์„œ ์œ ๋ฆฌ ์ •์ ์ธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์บ์‹ฑ์„ ํ•ด์„œ ์žฌํ™œ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ํšจ์œจ์ ์ž„ $ Statement๋ฅผ ์˜๋ฏธ ํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ์ž๋ฃŒํ˜•์— ๋งž์ถ”์–ด ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ž๋ฃŒํ˜•์ด ๋ณ€๊ฒฝ๋จ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋ฐ”๋กœ ์ถœ๋ ฅ๋จ. ์ฟผ๋ฆฌ ์ฃผ์ž…์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์—†์–ด ๋ณด์•ˆ ์ธก๋ฉด์—์„œ ๋ถˆ๋ฆฌํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ์ „๋‹ฌํ•  ๋•Œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ (SQL Injection) ํ…Œ์ด๋ธ”์ด๋‚˜ ์ปฌ๋Ÿผ๋ช…์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•จ ์ฐจ์ด์  ..