๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์Šคํ”„๋ง 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.
์Šคํ”„๋ง JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ - JdbcTemplate ์Šคํ”„๋ง JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ - JdbcTemplate Spring Framework๋Š” JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด JdbcTemplate ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ JdbcTemplate ํด๋ž˜์Šค๋Š” ์†์‰ฝ๊ฒŒ DB์™€ ์—ฐ๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” Oracle DB 11g๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ๋‹ค๋ฅธ DB๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค. ์˜์กด์„ฑ ์ถ”๊ฐ€ Spring JDBC, Oracle JDBC ๋“œ๋ผ์ด๋ฒ„, Apache Commons DBCP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. org.springframework spring-jdbc 5.1.9.RELEASE com.oracle ojdbc6 11.2.0.3 org.apache.commons commons-dbcp2 2.7.0 Oracle JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ.. 2020. 4. 27.
SQL ์˜์กด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฌธ์ œ์ ๊ณผ JPA SQL ์˜์กด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฌธ์ œ์ ๊ณผ JPA ๊ฐœ์š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋ ค๋ฉด SQL์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ JDBC API๋ฅผ ์‚ฌ์šฉํ•ด์„œ SQL์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค. JPA๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ์˜ ์ด์ ์ด ๋ฌด์—‡์ธ์ง€, SQL์„ ์ง์ ‘ ๋‹ค๋ฃฐ ๋•Œ์˜ ๋ฌธ์ œ์ ์€ ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ์ž๋ฐ”์™€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํšŒ์› ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•ด๋ณด์ž. ํšŒ์› ํ…Œ์ด๋ธ”์€ ์ด๋ฏธ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  CRUD(๋“ฑ๋ก, ์กฐํšŒ, ์ˆ˜์ •, ์‚ญ์ œ) ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•ด๋ณด์ž. JDBC ํšŒ์› ๊ด€๋ฆฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ Member(ํšŒ์›) ๊ฐ์ฒด ์ž๋ฐ”์—์„œ ์‚ฌ์šฉํ•  Member(ํšŒ์›) ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ ๋‹ค. public class Member { private int no; private String email; private String name.. 2020. 3. 18.
try-with-resource ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•œ JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ˆ์ œ ์ฝ”๋“œ try-with-resource ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•œ JDBC ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ˆ์ œ ์ฝ”๋“œ try-with-resource๋Š” java 7 ์ด์ƒ๋ถ€ํ„ฐ ์ง€์›๋˜๋ฉฐ try ๋ธ”๋Ÿญ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜๋ฉด ()์•ˆ์˜ ๋ฆฌ์†Œ์Šค์˜ ์ž์›์„ ํ•ด์ œํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ž๋™์œผ๋กœ ํ˜ธ์ถœํ•ด์ค€๋‹ค. String url = "jdbc:mysql://localhost:3306/myschema"; // ์œ„์น˜ ์ •๋ณด String username = "user"; // ์ธ์ฆ ์ •๋ณด String password = "1234"; // ์ธ์ฆ ์ •๋ณด // try-with-resource try(Connection conn = DriverManager.getConnection(url, username, password)) { String sql = "SELECT id, username, p.. 2020. 3. 11.
IntelliJ๋กœ Gradle ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ณ  DB ์—ฐ๋™ํ•˜๊ธฐ IntelliJ๋กœ Gradle ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ณ  DB ์—ฐ๋™ํ•˜๊ธฐ 1. Gradle ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ ๊ฐ€์žฅ ๋จผ์ € ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ขŒ์ธก์—์„œ Gradle์„ ์„ ํƒํ•˜๊ณ  Project SDK์—์„œ ์‚ฌ์šฉํ•  JDK ๋ฒ„์ „์„ ์„ ํƒ, ์ค‘์•™ Additional Libraries and Frameworks์—์„œ๋Š” Java๋งŒ ์„ ํƒํ•˜๊ณ  Next๋ฅผ ํด๋ฆญํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ ์ด๋ฆ„, ์œ„์น˜, Group Id, Artifact Id๋ฅผ ์ž…๋ ฅํ•˜๊ณ  Finish๋ฅผ ํด๋ฆญํ•œ๋‹ค. 2. JDBC Driver ์˜์กด์„ฑ ์ถ”๊ฐ€ Maven ์ €์žฅ์†Œ(https://mvnrepository.com)์—์„œ ์ž์‹ ์ด ์‚ฌ์šฉํ•˜๋Š” DBMS์˜ JDBC ๋“œ๋ผ์ด๋ฒ„ ์˜์กด์„ฑ ๊ตฌ๋ฌธ์„ ๋ณต์‚ฌํ•œ๋‹ค. Gradle ํƒญ์˜ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•˜๋ฉด ๋œ๋‹ค. ๋‚˜๋Š” MySQL 8์ ๋Œ€๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ณต.. 2020. 3. 8.
Context Parameter(์ปจํ…์ŠคํŠธ ๋งค๊ฐœ๋ณ€์ˆ˜)๋กœ web.xml์— DB ์—ฐ๊ฒฐ ์ •๋ณด ๊ด€๋ฆฌํ•˜๊ธฐ ๊ด€๋ จ ๊ธ€ - Servlet Init Parameter(์„œ๋ธ”๋ฆฟ ์ดˆ๊ธฐํ™” ๋งค๊ฐœ๋ณ€์ˆ˜)๋กœ web.xml์— DB ์—ฐ๊ฒฐ ์ •๋ณด ๊ด€๋ฆฌํ•˜๊ธฐ - Tomcat ์„œ๋ฒ„ DataSource ์„ค์ • ๋ฐฉ๋ฒ• (+JNDI) Context Parameter(์ปจํ…์ŠคํŠธ ๋งค๊ฐœ๋ณ€์ˆ˜)๋กœ web.xml์— DB ์—ฐ๊ฒฐ ์ •๋ณด ๊ด€๋ฆฌํ•˜๊ธฐ Servlet init parameter๋Š” ๊ทธ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ์„œ๋ธ”๋ฆฟ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ๋‹ค๋ฅธ ์„œ๋ธ”๋ฆฟ์€ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋‹ค. ์—ฌ๋Ÿฌ ์„œ๋ธ”๋ฆฟ์ด ๊ณตํ†ต์˜ ํ™˜๊ฒฝ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด context parameter๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค. Context parameter๋Š” ๊ฐ™์€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„œ๋ธ”๋ฆฟ๋“ค์ด ๊ฐ™์ด ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์ด๋‹ค. ๋‹ค์Œ์€ MySQL DB ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ context parameter๋กœ ์„ ์–ธํ•ด์„œ DB ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•œ ์„œ๋ธ”๋ฆฟ.. 2020. 2. 11.
Servlet Init Parameter(์„œ๋ธ”๋ฆฟ ์ดˆ๊ธฐํ™” ๋งค๊ฐœ๋ณ€์ˆ˜)๋กœ web.xml์— DB ์—ฐ๊ฒฐ ์ •๋ณด ๊ด€๋ฆฌํ•˜๊ธฐ ๊ด€๋ จ ๊ธ€ - Context Parameter(์ปจํ…์ŠคํŠธ ๋งค๊ฐœ๋ณ€์ˆ˜)๋กœ web.xml์— DB ์—ฐ๊ฒฐ ์ •๋ณด ๊ด€๋ฆฌํ•˜๊ธฐ Servlet Init Parameter(์„œ๋ธ”๋ฆฟ ์ดˆ๊ธฐํ™” ๋งค๊ฐœ๋ณ€์ˆ˜)๋กœ web.xml์— DB ์—ฐ๊ฒฐ ์ •๋ณด ๊ด€๋ฆฌํ•˜๊ธฐ Servlet Init Parameter(์„œ๋ธ”๋ฆฟ ์ดˆ๊ธฐํ™” ๋งค๊ฐœ๋ณ€์ˆ˜) ์„œ๋ธ”๋ฆฟ์„ ์ƒ์„ฑํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•  ๋•Œ, ์ฆ‰ init()์„ ํ˜ธ์ถœํ• ๋•Œ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์„œ๋ธ”๋ฆฟ์— ์ „๋‹ฌํ•˜๋Š” ๋ฐ์ดํ„ฐ์ด๋‹ค. ๋ณดํ†ต DB ์—ฐ๊ฒฐ ์ •๋ณด์™€ ๊ฐ™์€ ์ •์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋‹ค์Œ์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. DDํŒŒ์ผ(web.xml)์˜ ์„œ๋ธ”๋ฆฟ ๋ฐฐ์น˜ ์ •๋ณด์— ์„ค์ • ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•ด์„œ ์„œ๋ธ”๋ฆฟ ์†Œ์Šค ์ฝ”๋“œ์— ์„ค์ • ๊ฐ€๋Šฅํ•œ 1๋ฒˆ์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์„ค์ •ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค. ์†Œ์Šค ์ฝ”๋“œ์—์„œ ๋ถ„๋ฆฌํ•ด์„œ ์™ธ๋ถ€ ํŒŒ์ผ์— ๋‘๋Š”๊ฒŒ ๋” ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด.. 2020. 2. 11.
[IntelliJ] ํšŒ์›๊ฐ€์ž… ์˜ˆ์ œ(JAVA + MySQL) - (1) ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ ๊ด€๋ จ ๊ธ€ - [IntelliJ] ํšŒ์›๊ฐ€์ž… ์˜ˆ์ œ(JAVA + MySQL) - (1) ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ - [IntelliJ] ํšŒ์›๊ฐ€์ž… ์˜ˆ์ œ(JAVA + MySQL) - (2) ํšŒ์› ๊ฐ€์ž… - [IntelliJ] ํšŒ์›๊ฐ€์ž… ์˜ˆ์ œ(JAVA + MySQL) - (3) ํšŒ์› ์ •๋ณด ์ˆ˜์ • - [IntelliJ] ํšŒ์›๊ฐ€์ž… ์˜ˆ์ œ(MVC) - (4) ๋ทฐ(JSP) ๋ถ„๋ฆฌํ•˜๊ธฐ [IntelliJ] JAVA ์„œ๋ธ”๋ฆฟ + MySQL ํšŒ์›๊ฐ€์ž… ์˜ˆ์ œ - (1) ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ ํ™˜๊ฒฝ ์ •๋ณด IntelliJ IDEA 2019.3 Ultimate, Apache Tomcat 9, MySQL 8 ์œ„์™€ ๊ฐ™์€ ํ•™์ƒ ํ…Œ์ด๋ธ”์„ ์ด์šฉํ•ด ํ•™์ƒ ๋ชฉ๋ก ์ถœ๋ ฅ, ์‹ ๊ทœ ํ•™์ƒ ๋“ฑ๋ก, ๊ธฐ์กด ํ•™์ƒ ์ •๋ณด ์ˆ˜์ •์„ ํ•˜๋Š” ์„œ๋ธ”๋ฆฟ์„ ๊ตฌํ˜„ํ•œ๋‹ค. 1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ์„ธํŒ… ์šฐ์„  ์›น ํ”„๋กœ์ .. 2020. 2. 9.