๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Oracle WITH ๊ตฌ๋ฌธ์„ MySQL๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ Oracle WITH ๊ตฌ๋ฌธ์„ MySQL๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ MySQL 8.0 ์ด์ „ ๋ฒ„์ „์—์„œ๋Š” WITH ๊ตฌ๋ฌธ์ด ์ง€์›๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— WITH ๊ตฌ๋ฌธ์„ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์„ ํƒ์ง€ ์ค‘ ํ•˜๋‚˜๋ฅผ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. Temporary Table(์ž„์‹œ ํ…Œ์ด๋ธ”) Derived Table Inline View ๋ณธ ๊ธ€์—์„œ๋Š” inline view๋ฅผ ์ด์šฉํ•˜์—ฌ Oracle WITH ๊ตฌ๋ฌธ์„ ๋ณ€๊ฒฝํ•ด ๋ณผ ๊ฒƒ์ด๋‹ค. WITH ๊ตฌ๋ฌธ์„ Inline View๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์˜ˆ์ œ ํŽธ์˜์ƒ ๊ฐ„๋‹จํ•œ ์ฟผ๋ฆฌ๋ฅผ ์˜ˆ์ œ๋กœ ๋“ค์—ˆ๋‹ค. โ„น๏ธOracle WITH: WITH SAMPLE_WITH AS (SELECT ID FROM SAMPLE_TBL) SELECT A.ID FROM ANOTHER_TBL A, SAMPLE_WITH B WHERE A.ID = B.ID โ„น๏ธMySQL Inlin.. 2020. 12. 8.
Spring Boot + MyBatis ์„ค์ • ๋ฐฉ๋ฒ•(HikariCP, H2) Spring Boot + MyBatis ์„ค์ • ๋ฐฉ๋ฒ•(HikariCP, H2) ๐Ÿ“ ์ˆœ์„œ 1. ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ 2. ์ดˆ๊ธฐํ™” ์Šคํฌ๋ฆฝํŠธ ์„ค์ •(schema.sql, data.sql) 3. DBCP/DataSource ์„ค์ •(HikariCP) 4. MyBatis ์„ค์ •(@MapperScan, XML ์œ„์น˜, CamelCase, Alias, ๋กœ๊ทธ๋ ˆ๋ฒจ) 5. Model, Mapper ์ƒ์„ฑ 6. ํ…Œ์ŠคํŠธ 1. ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ MyBatis๋ฅผ ์ด์šฉํ•œ DB ์—ฐ๋™์„ ์œ„ํ•œ ์ƒˆ ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์Šคํ”„๋ง ๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ๋Š” IDE๋ฅผ ์ด์šฉํ•˜๋˜์ง€, spring initializr(start.spring.io)๋ฅผ ์ด์šฉํ•ด ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž๋ฐ”๋Š” 8๋กœ, ์˜์กด์„ฑ์€ Spring Web, Spring Data JDBC.. 2020. 8. 1.
์Šคํ”„๋ง JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ - MyBatis ์—ฐ๋™ ์Šคํ”„๋ง JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ - MyBatis ์—ฐ๋™ ์ด ๊ธ€์—์„œ๋Š” Oracle DB 11g๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ๋‹ค๋ฅธ DB๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค. MyBatis - Spring JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‰ฝ๊ฒŒ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ - Mapper์˜ ์—ญํ• ์„ ํ™•์žฅํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฌธ ์ž‘์„ฑ์„ ๋ชจ๋‘ Mapper์—์„œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•œ๋‹ค. ์˜์กด์„ฑ ์ถ”๊ฐ€ Spring JDBC, Oracle JDBC ๋“œ๋ผ์ด๋ฒ„, Apache Commons DBCP์™€ MyBatis ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. org.springframework spring-jdbc 5.1.9.RELEASE com.oracle ojdbc6 11.2.0.3 org.apache.commons commons-dbcp2 2.7.0 org.mybatis mybati.. 2020. 4. 28.
MyBatis ๋™์  SQL - <choose>์™€ <set>์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์  SQL ๋งŒ๋“ค๊ธฐ ๊ด€๋ จ ๊ธ€ - [JAVA/WEB] ์›น ํ”„๋กœ์ ํŠธ์— MyBatis ์„ธํŒ… ๋ฐ ์ ์šฉํ•˜๊ธฐ - MyBatis ์„ค์ • ํŒŒ์ผ - SQL Mapper ์ž‘์„ฑ ๋ฐฉ๋ฒ• - MyBatis ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ ๋ฐฉ๋ฒ• - MyBatis์™€ Log4J ์—ฐ๋™ํ•˜๊ธฐ ์ œ๋ชฉ MyBatis์˜ ๋™์  SQL ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜๋‚˜์˜ SQL๋ฌธ์œผ๋กœ ์—ฌ๋Ÿฌ ์ผ€์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ •๋ ฌ ์กฐ๊ฑด์— ๋”ฐ๋ผ ORDER BY ์ ˆ์„ ๋ฐ”๊ฟ”์•ผ ํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰ ์กฐ๊ฑด์— ๋”ฐ๋ผ WHERE ์ ˆ์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ๋™์  SQL ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” SQL๋ฌธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ํ‘œ - MyBatis ๋™์  SQL ์ข…๋ฅ˜ ๋™์  SQL ์—˜๋ฆฌ๋จผํŠธ ์„ค๋ช… SQL ์กฐ๊ฑด์ด ์ฐธ์ผ ๊ฒฝ์šฐ SQL๋ฌธ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. SQL SQL SQL ๊ฒ€์‚ฌํ•  ์กฐ๊ฑด์ด ์—ฌ๋Ÿฌ๊ฐœ์ผ ๊ฒฝ์šฐ ์‚ฌ์šฉ ์ž๋ฐ”์˜ if-else๋ฌธ๊ณผ ์œ ์‚ฌํ•˜๋‹ค.. 2020. 2. 26.
MyBatis์™€ Log4J ์—ฐ๋™ํ•˜๊ธฐ ๊ด€๋ จ๊ธ€ - [JAVA/WEB] ์›น ํ”„๋กœ์ ํŠธ์— MyBatis ์„ธํŒ… ๋ฐ ์ ์šฉํ•˜๊ธฐ - MyBatis ์„ค์ • ํŒŒ์ผ - SQL Mapper ์ž‘์„ฑ ๋ฐฉ๋ฒ• - MyBatis ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ ๋ฐฉ๋ฒ• MyBatis์™€ Log4J ์—ฐ๋™ํ•˜๊ธฐ MyBatis์™€ log4j๋ฅผ ์—ฐ๋™ํ•˜์—ฌ MyBatis์˜ ๋กœ๊ทธ ์ถœ๋ ฅ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. MyBatis์˜ ๋กœ๊ทธ ์ถœ๋ ฅ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋ฉด MyBatis์—์„œ ์‹คํ–‰ํ•˜๋Š” SQL๋ฌธ, ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’, ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠนํžˆ ๋™์  SQL๋ฌธ์ด ์‹คํ–‰ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋‹ฌ๋ผ์ง€๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด ๋””๋ฒ„๊น… ์‹œ ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค. 1. MyBatis ์„ค์ • MyBatis ์„ค์ • ํŒŒ์ผ์— ๋กœ๊ทธ ์ถœ๋ ฅ ์„ค์ •์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ํ•˜์œ„์— ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์„ ์‚ฌ์šฉํ•ด์„œ ๋กœ๊ทธ ์ถœ๋ ฅ๊ธฐ๋ฅผ ์ง€์ •ํ•œ๋‹ค. MyBatis๋Š” ์—ฌ๊ธฐ.. 2020. 2. 25.
[IntelliJ] SQL Dialect์™€ Data Source ์„ค์ • ๋ฐฉ๋ฒ• [IntelliJ] SQL Dialect์™€ Data Source ์„ค์ • ๋ฐฉ๋ฒ• ๐Ÿ’ก IntelliJ IDEA 2019.3 IntelliJ์—์„œ MyBatis๊ฐ™์€ SQL mapper ๊ธฐ๋ฐ˜์˜ framework๋ฅผ ์‚ฌ์šฉํ• ๋•Œ SQL mapper xml ํŒŒ์ผ์—์„œ 'No data source are configured to run this SQL and provide advanced code assistance.' ์ด๋‚˜ 'SQL dialect is not configured.' ๋ผ๋Š” warning์ด ๊ฒ€์ถœ๋  ์ˆ˜ ์žˆ๋‹ค. Warning(๊ฒฝ๊ณ ) ์ด๋ฏ€๋กœ ๋ฌด์‹œํ•ด๋„ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š”๋ฐ ๋ฌธ์ œ๋Š” ์—†๋‹ค. ํ•˜์ง€๋งŒ IntelliJ์— SQL dialect์™€ data source๋ฅผ ์„ค์ •ํ•ด์ฃผ๋ฉด ํ•ด๋‹น database์— ๋Œ€ํ•œ ์ฝ”๋“œ ๊ฒ€์ฆ, SQL ๋ฌธ๋ฒ• ๊ฒ€.. 2020. 2. 24.
MyBatis ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ ๋ฐฉ๋ฒ• ๊ด€๋ จ ๊ธ€ - [JAVA/WEB] ์›น ํ”„๋กœ์ ํŠธ์— MyBatis ์„ธํŒ… ๋ฐ ์ ์šฉํ•˜๊ธฐ - MyBatis ์„ค์ • ํŒŒ์ผ - SQL Mapper ์ž‘์„ฑ ๋ฐฉ๋ฒ• MyBatis ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ ๋ฐฉ๋ฒ• MyBatis ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ฐธ์กฐํ•˜๋Š” XML ํŒŒ์ผ์€ MyBatis ์„ค์ • ํŒŒ์ผ๊ณผ SQL mapper ํŒŒ์ผ๋กœ ๋‚˜๋ˆ„์–ด์ง„๋‹ค. ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” MyBatis ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃฐ๊ฒƒ์ด๋‹ค. MyBatis๋Š” ์ž์ฒด ์ปค๋„ฅ์…˜ํ’€ ๊ตฌ์ถ• ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ์„ค์ •ํ•ด ๋‘๊ณ  ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ, ์šด์˜์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•  DB ์ง€์ • SELECT ๊ฒฐ๊ณผ ์บ์‹ฑ VO(Value Object, ๊ฐ’ ๊ฐ์ฒด)์— alias ๋ถ€์—ฌ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ MyBatis ์„ค์ •ํŒŒ์ผ์—๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์ž‘ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•œ๋‹ค. ๋‹ค์Œ์€ MyBatis ์„ค์ • ํŒŒ์ผ์˜.. 2020. 2. 24.
MyBatis ์„ค์ • ํŒŒ์ผ - SQL Mapper ์ž‘์„ฑ ๋ฐฉ๋ฒ• ๊ด€๋ จ ๊ธ€ - [JAVA/WEB] ์›น ํ”„๋กœ์ ํŠธ์— MyBatis ์„ธํŒ… ๋ฐ ์ ์šฉํ•˜๊ธฐ MyBatis ์„ค์ • ํŒŒ์ผ - SQL Mapper ์ž‘์„ฑ ๋ฐฉ๋ฒ• MyBatis ์‚ฌ์šฉ ๋ชฉ์  ์ค‘ ํ•˜๋‚˜๋Š” DAO๋กœ๋ถ€ํ„ฐ SQL๋ฌธ์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ถ„๋ฆฌ๋œ SQL๋ฌธ์€ SQL mapper ํŒŒ์ผ์— ์ž‘์„ฑํ•˜๋ฉฐ DAO์—์„œ๋Š” SqlSession ๊ฐ์ฒด๊ฐ€ SQL mapper ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜๊ฒŒ ๋œ๋‹ค. ๋‹ค์Œ์€ MyBatis SQL mapper ํŒŒ์ผ์˜ ์˜ˆ์ด๋‹ค. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 select PNO, PNAME, STA_DATE, END.. 2020. 2. 23.
[JAVA/WEB] ์›น ํ”„๋กœ์ ํŠธ์— MyBatis ์„ธํŒ… ๋ฐ ์ ์šฉํ•˜๊ธฐ ๊ด€๋ จ ๊ธ€ - MyBatis ์„ค์ • ํŒŒ์ผ - SQL Mapper ์ž‘์„ฑ ๋ฐฉ๋ฒ• - MyBatis ์„ค์ • ํŒŒ์ผ ์ž‘์„ฑ ๋ฐฉ๋ฒ• [JAVA/WEB] ์›น ํ”„๋กœ์ ํŠธ์— MyBatis ์„ธํŒ… ๋ฐ ์ ์šฉํ•˜๊ธฐ ํ™˜๊ฒฝ ๋ฐ ๋ฒ„์ „ ์ •๋ณด IntelliJ IDEA 2019.3 Ultimate, JDK 11, Tomcat 9, MyBatis 3 MyBatis Persistence framework ์ค‘ ํ•˜๋‚˜์ธ MyBatis๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—†์ด DB์™€ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ JDBC API๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  MyBatis๊ฐ€ ๋Œ€์‹  ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. MyBatis์˜ ํ•ต์‹ฌ์€ ๊ฐœ๋ฐœ๊ณผ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฝ๋„๋ก ์†Œ์Šค ์ฝ”๋“œ์— ๋‚ด์žฅ๋ผ์žˆ๋Š” SQL์„ ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ๋‹จ์ˆœํ•˜๊ณ  ๋ฐ˜๋ณต์ ์ธ JDBC ์ฝ”๋“œ๋ฅผ ์บก์Šํ™”ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœ๊ทธ๋ž˜.. 2020. 2. 23.