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) ํ
์ด๋ธ์ด๋ ์ปฌ๋ผ๋ช
์ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌํ๊ณ ์ถ์ ๋ ์ฌ์ฉํจ ์ฐจ์ด์ ..