๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

JAVA19

SQL ๋™์  ์ฟผ๋ฆฌ foreach๋ฌธ ๋ฌธ๋ฒ• ์ •๋ฆฌ List data = new ArrayList(); data.put('data', arr); MainMapper.insertData(data); INSERT INTO ${session.tableName}.personDetail(P_ID, P_NAME, P_AGE) VALUES #{person.p_id}, #{person.p_name}, #{person.p_age} SQL foreach ๋ฌธ ํƒœ๊ทธ ๊ธฐ๋Šฅ collection ์ „๋‹ฌ๋ฐ›์€ ์ธ์ž (List or Array) item ์ „๋‹ฌ๋ฐ›์€ ์ธ์ž alias separator ๋ฐ˜๋ณต๋˜๋Š” ์‚ฌ์ด์— ์ถœ๋ ฅํ•  ๋ฌธ์ž์—ด index ๋ฐ˜๋ณต๋˜๋Š” ๊ตฌ๋ฌธ ๋ฒˆํ˜ธ (0๋ถ€ํ„ฐ ์ˆœ์ฐจ ์ฆ๊ฐ€) open ๊ตฌ๋ฌธ ์‹œ์ž‘๋  ๋•Œ ์‚ฝ์ž…ํ•  ๋ฌธ์ž์—ด close ๊ตฌ๋ฌธ ์ข…๋ฃŒ๋  ๋•Œ ์‚ฝ์ž…ํ•  ๋ฌธ์ž์—ด 2023. 9. 21.
Spring ์ปค์Šคํ…€ Annotation (@Target, @Retention) ์ƒˆ๋กœ์šด ํŒ€์— ๋“ค์–ด์™€์„œ ๋ฐฑ์—”๋“œ ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค๊ฐ€ ์ปค์Šคํ…€ ๋œ ์–ด๋…ธํ…Œ์ด์…˜์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ์–ด๋…ธํ…Œ์ด์…˜๋„ ์ปค์Šคํ…€์ด ๋˜๋‹ค๋‹ˆ..! ์‹ ๊ธฐํ•ด์„œ ์ปค์Šคํ…€ ์–ด๋…ธํ…Œ์ด์…˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค. @์ปค์Šคํ…€์–ด๋…ธํ…Œ์ด์…˜ ๋ช… ํ”ํžˆ ์•„๋Š” ์–ด๋…ธํ…Œ์ด์…˜์—๋Š” @Controller @Service ๋“ฑ์ด ์žˆ๋Š”๋ฐ, ์ด๋“ค์€ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ(์–ด๋…ธํ…Œ์ด์…˜) ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. ์–ด๋…ธํ…Œ์ด์…˜์˜ ๋งŽ์€ ๊ธฐ๋Šฅ ์ค‘ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ปค์Šคํ…€ ํ•œ ๊ฒƒ์ด ์ปค์Šคํ…€ ์–ด๋…ธํ…Œ์ด์…˜์ด๋‹ค. ์ปค์Šคํ…€ ์–ด๋…ธํ…Œ์ด์…˜์€ @Target ๊ณผ @Retention ๋“ฑ meta annotation ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค์Šคํ…€ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Ÿฌํ•œ meta annotation ์€ ๋ณดํ†ต ๋‹ค๋ฅธ ์–ด๋…ธํ…Œ์ด์…˜ ์ƒ์„ฑ ์‹œ์—๋„ ํฌํ•จ๋˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋‚ด๊ฐ€ ๋ฐœ๊ฒฌํ•œ ์ปค์Šคํ…€ ์–ด๋…ธํ…Œ์ด์…˜์€ @Target @Retention ๋‘ ๊ฐ€์ง€ ์–ด๋…ธ.. 2023. 9. 19.
[Java] MyBatis xml ์ž‘์„ฑ Mapper - namespace : ์—ฌ๋Ÿฌ ๊ฐœ์˜ SQL๋ฌธ์„ ํŒจํ‚ค์ง€์ฒ˜๋Ÿผ ๋ฌถ๋Š”๋‹ค. SQL ํƒœ๊ทธ - ํƒœ๊ทธ๋ฅผ ์ œ๊ณต - ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ sql๋ฌธ์„ ๋ฏธ๋ฆฌ ์ •์˜ํ•ด ๋‘˜ ์ˆ˜ ์žˆ๋‹ค. SELECT #{S_ID} AS L_ID, F.L_NAME, F.L_TEACHER, F.L_PLACE, F.L_TIME, F.L_MAX FROM ${DB_LESSON}.FIRST_TYPE F WHERE F.L_ID = '11111' AND F.L_NAME NOT IN ( SELECT L_NAME FROM ${DB_LESSON}.FIRST_TYPE WHERE L_ID = #{S_ID} ) SELECT COUNT(*) FROM ( ) A parameterType - parameterType ์— ์ง€์ •๋œ ๊ฐ’์ด SQL๋ฌธ ์ž…๋ ฅ ๊ฐ’์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. resul.. 2023. 9. 18.
[JAVA] DAO, DTO, VO ์ •๋ฆฌ ์ „์ฒด์ ์ธ ํ๋ฆ„ DB -> DAO -> SERVICE (-MAPPER) -> CONTROLLER -> WEB DAO (Data Access Object) - ์‹ค์ œ๋กœ DB ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ DOMAIN (= Entity) Lesson.java @Data @Getter @Setter @NoArgsConstructor public class Lesson { private int c_idx; private String c_name; private int ag_idx; @Builder public Lesson(int c_idx, String c_name, int ag_idx) { this.c_idx = c_idx; this.c_name = c_name; this.ag_idx = ag_idx; } } L.. 2023. 9. 16.
[JAVA] Spring Boot ํ™˜๊ฒฝ์—์„œ ํ†ฐ์บฃ ์‚ฌ์šฉํ•˜๊ธฐ 1. Eclipse MarketPlace ์— sts ๊ฒ€์ƒ‰ํ•ด์„œ Spring Tools 4 (aka Spring Tool Suite 4) ์„ค์น˜ 2. File - New - Other - Spring Boot ๊ฒ€์ƒ‰ํ•ด์„œ ์Šคํ”„๋ง ์›น ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ 3. ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ ์„ค์ • Spring Boot ์—์„œ๋Š” jsp ํŒŒ์ผ ์ง€์›์„ ์•ˆํ•˜๊ธฐ ๋•Œ๋ฌธ์— jsp ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด jsp ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ์ •ํ•œ ๋‹ค์Œ application.properties ํŒŒ์ผ์— view ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์„ค์ •์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. // application.properties server.port=8080 spring.mvc.view.prefix=/WEB-INF/Views/ spring.mvc.view.suffix=.jsp Project ์šฐํด๋ฆญ - Run As.. 2021. 9. 27.
[JAVA] Spring์—์„œ Mybatis ์—ฐ๋™ Spring ํ™˜๊ฒฝ์—์„œ Mybatis - Mysql ์—ฐ๋™ํ•ด์„œ ๋กœ๊ทธ์ธ ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ 1. Spring ์„ธํŒ… https://wz0z30.tistory.com/12 [Java] Spring ์ดˆ๊ธฐ ์„ธํŒ… (์ˆ˜๋™) 1. Maven Project ์ƒ์„ฑ ์นดํƒˆ๋กœ๊ทธ Internal ๋กœ ์„ค์ •ํ•œ ํ›„ web-app ์„ ํƒ Group id, Artifact id ์„ค์ • -> Finish C:\Users\user\eclipse-workspace\ํ”„๋กœ์ ํŠธ๋ช…\.settings ์— ์ ‘๊ทผ org.eclipse.jdt.core.prefs ํŒŒ์ผ.. wz0z30.tistory.com 2. pom.xml ์— ์˜์กด์„ฑ ์ฃผ์ž… (dependency) commons-dbcp commons-dbcp 1.4 mysql mysql-connector-java 8... 2021. 9. 24.
[JAVA] Spring Bean ์‚ฌ์šฉํ•˜๊ธฐ Spring ์„ธํŒ… maven project ์ƒ์„ฑ pom.xml ์— dependency ์ถ”๊ฐ€ : https://mvnrepository.com/ Context.xml ์— Bean ํƒœ๊ทธ ์‚ฌ์šฉํ•ด์„œ ๊ฐ์ฒด ์ƒ์„ฑํ•˜๊ธฐ @Bean : ํ•จ์ˆ˜/๊ฐ์ฒด ํ˜ธ์ถœ ์ž์ฒด๋ฅผ Spring ์ด ํ•˜๋„๋ก ํ•˜๋Š” ์–ด๋…ธํ…Œ์ด์…˜ bean ํƒœ๊ทธ์˜ id : ๋งŒ๋“ค ํ•จ์ˆ˜์˜ ์ด๋ฆ„ bean ํƒœ๊ทธ์˜ class : ํ•จ์ˆ˜์—์„œ ๋ฆฌํ„ดํ•  ๊ฐ’ ์ •์˜ constructor-arg ํƒœ๊ทธ์˜ ref : ์ƒ์„ฑ์ž์˜ ์ธ์ˆ˜ ์ „๋‹ฌ์„ ์œ„ํ•œ ํƒœ๊ทธ Hello.java ์ž‘์„ฑ Factory Pattern ์‚ฌ์šฉ package Pack01; import org.springframework.context.support.GenericXmlApplicationContext; interface Fuel{ Str.. 2021. 9. 24.
[JAVA] MyBatis ์‹œ์ž‘ํ•˜๊ธฐ (with Delegation Pattern) Mybatis ๋ž€? ์ž๋ฐ” ๊ฐ์ฒด์™€ SQL ์„ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” SQL ๋งคํผ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. JDBC ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•ด์„œ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ SQL ๋ฌธ๊ณผ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ตฌ๋ถ„ํ•ด์„œ ์ž‘์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋…์„ฑ์ด ๋†’๋‹ค. ์ž๋ฐ” ํŒŒ์ผ์ด ์•„๋‹Œ XML์— ์ฟผ๋ฆฌ๋ฌธ์„ ์ž‘์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฟผ๋ฆฌ๋ฌธ์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์ปดํŒŒ์ผ์„ ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. 1. maven project ์ƒ์„ฑ, Mybatis dependency(pom.xml) ์ž‘์„ฑ 4.0.0 Mybatis01 Mybatis01 0.0.1-SNAPSHOT commons-dbcp commons-dbcp 1.4 mysql mysql-connector-java 8.0.26 org.mybatis mybatis 3.5.7 org.apache.maven.plugins maven-compil.. 2021. 9. 23.
[JAVA] Spring ์œผ๋กœ ์ต๋ช… ํˆฌํ‘œ(์„ ๊ฑฐ) ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ #2 ํˆฌํ‘œ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ(๋ณธ์ธ์ธ์ฆ, ์ค‘๋ณตํˆฌํ‘œํ™•์ธ, ํˆฌํ‘œ ํผ, ํˆฌํ‘œ์ž์™€ ์„ ๊ฑฐ ํ›„๋ณด์ž์˜ ์ •๋ณด ์—…๋ฐ์ดํŠธ)์— ๋Œ€ํ•œ ๊ฒƒ์€ ๋ชจ๋‘ ๊ตฌํ˜„ํ•˜์˜€์ง€๋งŒ ๋ฉ˜ํ† ๋‹˜์˜ ์กฐ์–ธ์œผ๋กœ ๋ช‡ ๊ฐ€์ง€ ๋น ํŠธ๋ฆฐ ๊ธฐ๋Šฅ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. 1. ํˆฌํ‘œ ์ทจ์†Œ ๋ณธ์ธ ์ธ์ฆ ํ›„์— ํˆฌํ‘œ ํผ์œผ๋กœ ์ ‘๊ทผํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ํˆฌํ‘œ ํผ์—์„œ ํˆฌํ‘œ๋ฅผ ์ทจ์†Œํ•˜๊ณ  ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ธฐ๋Šฅ์ด ์—†์—ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„ ๊ฑฐ ํ›„๋ณด์ž๋ฅผ ๋ดค๋Š”๋ฐ ํˆฌํ‘œํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์ด ์—†๋‹ค๊ฑฐ๋‚˜ ํˆฌํ‘œ๋ฅผ ๋‚˜์ค‘์— ํ•˜๊ณ  ์‹ถ์–ด์ ธ์„œ ํˆฌํ‘œ ํผ์—์„œ ๋น ์ ธ ๋‚˜๊ฐ€๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ์ด๋‹ค. ์ƒ๊ฐํ•ด๋ณด๋ฉด ์–ด๋–ค ์‚ฌ์ดํŠธ์—์„œ ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ ๋ฉ”์ธ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ธฐ๋Šฅ, ๊ทธ๋ฆฌ๊ณ  ํผ์„ ๋„ฃ์€ ํŽ˜์ด์ง€์˜ ๊ฒฝ์šฐ์—๋Š” ํผ ์ž‘์„ฑ์„ ์ทจ์†Œํ•˜๋Š” ๋ฒ„ํŠผ์ด ์žˆ๋Š” ๊ฒƒ์ด ์–ด์ฐŒ๋ณด๋ฉด ๋‹น์—ฐํ•œ๋ฐ ๋ฏธ์ฒ˜ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜์„œ ํˆฌํ‘œ ํผ์ด ์žˆ๋Š” VoteView.jsp ์—์„œ ํˆฌ.. 2021. 9. 19.