** ๐Ÿ“Œ0.1๋‹จ๊ณ„: ๊ฐœ๋ฐœ ๋„๊ตฌ ์„ค์น˜ (Eclipse + JDK + Tomcat + MariaDB)


๐Ÿ“Œ [1] Java JDK ์„ค์น˜ (MyBatis ์‹คํ–‰์„ ์œ„ํ•œ ํ•„์ˆ˜ ์กฐ๊ฑด)

๐Ÿ’ก JDK๋ž€?

Java Development Kit. ์ž๋ฐ”๋กœ ๊ฐœ๋ฐœํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋ณธ ๊ฐœ๋ฐœ ๋„๊ตฌ ์„ธํŠธ์•ผ.

โœ… ์„ค์น˜ ๋ฐฉ๋ฒ•

  1. ๊ณต์‹ ์‚ฌ์ดํŠธ ์ ‘์†:

    https://jdk.java.net ๋˜๋Š” https://adoptium.net

    โ‡’ Temurin 11 ๋˜๋Š” JDK 17 LTS ๋ฒ„์ „ ์ถ”์ฒœ

  2. ์šด์˜์ฒด์ œ์— ๋งž๊ฒŒ ๋‹ค์šด๋กœ๋“œ:

    ์˜ˆ: Windows 64bit ์‚ฌ์šฉ์ž โ†’ .msi ๋˜๋Š” .zip ์„ ํƒ

  3. ์„ค์น˜ ์‹คํ–‰ ํ›„ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ • (์œˆ๋„์šฐ ๊ธฐ์ค€):

์ œ์–ดํŒ > ์‹œ์Šคํ…œ > ๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ์„ค์ • > ํ™˜๊ฒฝ ๋ณ€์ˆ˜
  1. ์„ค์น˜ ํ™•์ธ (๋ช…๋ น ํ”„๋กฌํ”„ํŠธ):
java -version

โœ… ๊ฒฐ๊ณผ ์˜ˆ์‹œ:

java version "17.0.8"
Java(TM) SE Runtime Environment ...

๐Ÿ“Œ [2] Eclipse ์„ค์น˜ (Java ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ IDE)

๐Ÿ’ก Eclipse๋ž€?

์ž๋ฐ” ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœ, ์‹คํ–‰, ๋””๋ฒ„๊น…ํ•˜๋Š” ํ†ตํ•ฉ ๊ฐœ๋ฐœ ๋„๊ตฌ์•ผ. MyBatis๋ฅผ ์—ฐ๋™ํ•˜๊ธฐ ๋”ฑ ์ข‹์•„.

โœ… ์„ค์น˜ ๋ฐฉ๋ฒ•

  1. ๊ณต์‹ ์‚ฌ์ดํŠธ ์ ‘์†:

    https://www.eclipse.org/downloads/

  2. Eclipse IDE for Java Developers ์„ ํƒ ํ›„ ๋‹ค์šด๋กœ๋“œ
  3. ์„ค์น˜ ๋ฐ ์‹คํ–‰ ํ›„ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์„ค์ •
    • ์˜ˆ: C:\workspace\mybatisstudy

๐Ÿ“Œ [3] Apache Tomcat ์„ค์น˜ (์›น ์„œ๋ฒ„ ์—ญํ• )

๐Ÿ’ก Tomcat์ด๋ž€?

JSP/Servlet์„ ์‹คํ–‰ํ•˜๊ณ , MyBatis ์—ฐ๋™ ์›น ํ”„๋กœ์ ํŠธ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ™•์ธํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์„œ๋ฒ„์•ผ.

โœ… ์„ค์น˜ ๋ฐฉ๋ฒ•

  1. ๊ณต์‹ ์‚ฌ์ดํŠธ ์ ‘์†:

    https://tomcat.apache.org

  2. Tomcat 9.x or 10.x ๋ฒ„์ „ ์„ ํƒ โ†’ Windows zip ๋‹ค์šด๋กœ๋“œ
  3. ์••์ถ• ํ•ด์ œ ํ›„ ํด๋” ์œ„์น˜ ์ง€์ • ์˜ˆ: C:\tomcat9
  4. Tomcat ์‹คํ–‰ ํ…Œ์ŠคํŠธ
    • bin/startup.bat ์‹คํ–‰
    • ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:8080 ์ ‘์† โ†’ Tomcat ํ™ˆํŽ˜์ด์ง€ ๋‚˜์˜ค๋ฉด ์„ฑ๊ณต

๐Ÿ“Œ [4] MariaDB ์„ค์น˜ (MyBatis์—์„œ ์‚ฌ์šฉํ•˜๋Š” DB)

๐Ÿ’ก MariaDB๋ž€?

MySQL๊ณผ ํ˜ธํ™˜๋˜๋Š” ์˜คํ”ˆ์†Œ์Šค ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์•ผ. MyBatis๋กœ SQL์„ ์—ฐ๋™ํ•  ๋•Œ ์ฃผ๋กœ ์“ฐ์—ฌ.

โœ… ์„ค์น˜ ๋ฐฉ๋ฒ•

  1. ๊ณต์‹ ์‚ฌ์ดํŠธ ์ ‘์†:

    https://mariadb.org/download/

  2. Windows์šฉ ์„ค์น˜ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ
  3. ์„ค์น˜ ๊ณผ์ • ์ค‘ ๋‹ค์Œ ์„ค์ • ์ฃผ์˜:
    • Root ๋น„๋ฐ€๋ฒˆํ˜ธ ์„ค์ • (root / 1234์ฒ˜๋Ÿผ ๊ธฐ์–ตํ•˜๊ธฐ ์‰ฌ์šด ๊ฑธ๋กœ)
    • ํฌํŠธ ๋ฒˆํ˜ธ: ๊ธฐ๋ณธ 3306 ์œ ์ง€
    • ์„œ๋น„์Šค ๋“ฑ๋ก: ์ฒดํฌ๋œ ์ฑ„ ์œ ์ง€
  4. ์„ค์น˜ ํ™•์ธ
    • ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์—์„œ:

        mysql -u root -p
      
    • ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ ํ›„ ์ ‘์† ์„ฑ๊ณต ์‹œ OK

  5. Workbench ๋˜๋Š” HeidiSQL ๋“ฑ GUI ํด๋ผ์ด์–ธํŠธ ์ถ”์ฒœ
    • MariaDB ์ ‘์† ๋ฐ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์‰ฝ๊ฒŒ ๊ฐ€๋Šฅ

โœ… ๊ฐœ๋ฐœํ™˜๊ฒฝ ์ตœ์ข… ์ ๊ฒ€ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

ํ•ญ๋ชฉ ์ฒดํฌ ์—ฌ๋ถ€
JDK ์„ค์น˜ ๋ฐ java -version ํ™•์ธ โœ…
Eclipse ์„ค์น˜ ๋ฐ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์„ธํŒ… โœ…
Tomcat ์••์ถ• ํ•ด์ œ ๋ฐ localhost:8080 ์ ‘์† ํ™•์ธ โœ…
MariaDB ์„ค์น˜ ๋ฐ mysql -u root -p ์ ‘์† ํ™•์ธ โœ…

โœ… 0.2๋‹จ๊ณ„: MyBatis ์‹ค์Šต ํ”„๋กœ์ ํŠธ ์ž„ํฌํŠธ + ๊ตฌ์กฐ ๋ถ„์„


๐Ÿ“ Step 1: ํ”„๋กœ์ ํŠธ ์ž„ํฌํŠธ (์••์ถ• ํ•ด์ œ โ†’ Eclipse๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ)

1๏ธโƒฃ ์••์ถ• ํ•ด์ œ

2๏ธโƒฃ Eclipse์—์„œ ํ”„๋กœ์ ํŠธ ์ž„ํฌํŠธ

  1. Eclipse ์‹คํ–‰ โ†’ [File] โ†’ [Import] ํด๋ฆญ
  2. ์„ ํƒ ํ•ญ๋ชฉ:

     General > Existing Projects into Workspace
    
  3. [Select root directory] ํด๋ฆญ โ†’ C:\workspace\mybatisstudy ์„ ํƒ
  4. [Finish] ํด๋ฆญ

โœ… ์„ฑ๊ณต ์‹œ mybatisstudy๋ผ๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ Package Explorer์— ๋ณด์ด๋ฉด ์„ฑ๊ณต!


๐Ÿ“‚ Step 2: ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ๋ถ„์„

์••์ถ•๋œ ๊ตฌ์กฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ผ๋ฐ˜์ ์ธ MyBatis + Java ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋˜์–ด ์žˆ์–ด:

mybatisstudy/
โ”œโ”€โ”€ src/                           ๐Ÿ‘‰ Java ์†Œ์Šค์ฝ”๋“œ (DAO, DTO, ๋ฉ”์ธ ๋“ฑ)
โ”‚   โ””โ”€โ”€ test0415/                  ๐Ÿ‘‰ ์‹ค์ œ ์‹ค์Šต์šฉ ํŒจํ‚ค์ง€
โ”‚       โ””โ”€โ”€ Test1_A.java           ๐Ÿ‘‰ ์‹ค์Šต ๋ฉ”์ธ ํŒŒ์ผ
โ”œโ”€โ”€ WebContent/                    ๐Ÿ‘‰ JSP, HTML ๋“ฑ ์›น ๋ฆฌ์†Œ์Šค
โ”‚   โ”œโ”€โ”€ WEB-INF/
โ”‚   โ”‚   โ”œโ”€โ”€ lib/                   ๐Ÿ‘‰ JDBC, MyBatis JAR ํŒŒ์ผ ์œ„์น˜
โ”‚   โ”‚   โ””โ”€โ”€ web.xml                ๐Ÿ‘‰ ๋ฐฐํฌ ์„ค์ • ํŒŒ์ผ
โ”œโ”€โ”€ StudentMapper1.xml            ๐Ÿ‘‰ XML Mapper ํŒŒ์ผ (SQL ์ •์˜)
โ”œโ”€โ”€ mybatis-config.xml            ๐Ÿ‘‰ MyBatis ์„ค์ •ํŒŒ์ผ
โ””โ”€โ”€ .classpath, .project           ๐Ÿ‘‰ Eclipse ์ž๋™ ์ƒ์„ฑ ํŒŒ์ผ


๐Ÿ” ํ•ต์‹ฌ ํŒŒ์ผ ์„ค๋ช… (ํ•œ ์ค„ ์š”์•ฝ ํฌํ•จ)

ํŒŒ์ผ/ํด๋” ์„ค๋ช…
src/test0415/Test1_A.java MyBatis์˜ ๊ธฐ๋ณธ select ์‹ค์Šต ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋œ ๋ฉ”์ธ ํด๋ž˜์Šค
StudentMapper1.xml SQL ์ฟผ๋ฆฌ์™€ ๋งคํ•‘ ์ •๋ณด๋ฅผ ๋‹ด์€ XML ๋งคํผ ํŒŒ์ผ
mybatis-config.xml MyBatis ์ „์ฒด ์„ค์ • ํŒŒ์ผ (Mapper ๋“ฑ๋ก, ํ™˜๊ฒฝ ์„ค์ • ํฌํ•จ)
WEB-INF/lib/ JDBC ๋“œ๋ผ์ด๋ฒ„์™€ MyBatis ์‹คํ–‰์— ํ•„์š”ํ•œ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(JAR) ์ €์žฅ์†Œ
web.xml ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฐํฌ ๊ตฌ์„ฑ ํŒŒ์ผ
WebContent/ JSP, HTML, CSS ๋“ฑ ์›น ๋ฆฌ์†Œ์Šค๋ฅผ ์œ„์น˜์‹œํ‚ฌ ๊ณต๊ฐ„ (ํ˜„์žฌ ์‹ค์Šต์—๋Š” ์ตœ์†Œํ™”๋˜์–ด ์žˆ์Œ)

๐Ÿ”Œ Step 3: Build Path ์„ค์ • (JAR ์—ฐ๊ฒฐ ํ™•์ธ)

  1. mybatisstudy ํ”„๋กœ์ ํŠธ์—์„œ ์šฐํด๋ฆญ โ†’ Build Path โ†’ Configure Build Path
  2. [Libraries] ํƒญ์—์„œ ๋‹ค์Œ ํ•ญ๋ชฉ ํ™•์ธ:
    • mybatis-xxx.jar
    • mariadb-java-client.jar
    • log4j-xxx.jar ๋“ฑ

โ— ๋น ์ ธ ์žˆ๋‹ค๋ฉด WEB-INF/lib/ ํด๋”์— .jar ํŒŒ์ผ์„ ๋„ฃ๊ณ  ๋‹ค์‹œ Add JARs๋กœ ์ถ”๊ฐ€!


โœ… Step 4: ์‹คํ–‰ ํ™•์ธ

  1. Test1_A.java ์—ด๊ธฐ
  2. ๋ฉ”์ธ ํ•จ์ˆ˜ ์šฐํด๋ฆญ โ†’ Run As โ†’ Java Application
  3. ์ฝ˜์†” ๊ฒฐ๊ณผ ์˜ˆ์‹œ:

     ์ „์ฒด ํ•™์ƒ ์ˆ˜: 6๋ช…
     ์ „์ฒด ํ•™์ƒ ๋ชฉ๋ก ์ถœ๋ ฅ
     1ํ•™๋…„๋งŒ ์ถœ๋ ฅ
     ์„ฑ์ด ๊น€์”จ์ธ ํ•™์ƒ ์ถœ๋ ฅ
     ์ฃผ๋ฏผ๋ฒˆํ˜ธ๋กœ ์—ฌํ•™์ƒ ๊ตฌ๋ถ„
    

โœ… ์„ฑ๊ณต์ ์œผ๋กœ ์ถœ๋ ฅ๋œ๋‹ค๋ฉด ํ”„๋กœ์ ํŠธ Import + ์„ค์ •์€ ์™„๋ฒฝํžˆ ์™„๋ฃŒ๋œ ๊ฑฐ์•ผ!


๐Ÿ’ก ๋””๋ฒ„๊น… ํฌ์ธํŠธ (์ค‘์š”)

๋ฌธ์ œ ์ฆ์ƒ ์ ๊ฒ€ํ•  ๊ฒƒ
ClassNotFoundException JAR ํŒŒ์ผ ๋ˆ„๋ฝ โ†’ Build Path ๋“ฑ๋ก ํ™•์ธ
IOException (config ํŒŒ์ผ ๋ชป ์ฐพ์Œ) mybatis-config.xml ๊ฒฝ๋กœ ํ™•์ธ, Resources.getResourceAsReader() ๊ฒฝ๋กœ ์ฒดํฌ
SQLException DB URL/ID/PW ํ™•์ธ, MariaDB๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธ

โœ… 0.3๋‹จ๊ณ„: JDBC ์—ฐ๋™ ํ™•์ธ (MyBatis ์—†์ด ์ง์ ‘ ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ)


๐ŸŽฏ ๋ชฉํ‘œ

Java ์ฝ”๋“œ๋กœ MariaDB์— ์ง์ ‘ ์ ‘์†ํ•ด์„œ ๋ฐ์ดํ„ฐ ์กฐํšŒ๊ฐ€ ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ

(์„ฑ๊ณต ์‹œ ์ฝ˜์†”์— DB ๋‚ด์šฉ ์ถœ๋ ฅ๋จ)


๐Ÿ›  1๋‹จ๊ณ„: ํ™˜๊ฒฝ ์ค€๋น„ ํ™•์ธ

ํ•ญ๋ชฉ ํ™•์ธ์‚ฌํ•ญ
MariaDB ์‹คํ–‰ ์—ฌ๋ถ€ mysql -u root -p ๋ช…๋ น์–ด๋กœ ์ ‘์† ํ™•์ธ
DB ์ƒ์„ฑ mybatisdb ๋ผ๋Š” DB์™€ student ํ…Œ์ด๋ธ”์ด ์กด์žฌํ•ด์•ผ ํ•จ
JDBC ๋“œ๋ผ์ด๋ฒ„ WEB-INF/lib์— mariadb-java-client-xxx.jar ํŒŒ์ผ์ด ์žˆ์–ด์•ผ ํ•จ
Eclipse ํ”„๋กœ์ ํŠธ์— Build Path ๋“ฑ๋ก ํ•ด๋‹น JAR์ด Java Build Path์— ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•จ

๐Ÿ“„ 2๋‹จ๊ณ„: ํ…Œ์ŠคํŠธ์šฉ student ํ…Œ์ด๋ธ” ์ƒ์„ฑ

CREATE DATABASE mybatisdb;

USE mybatisdb;

CREATE TABLE student (
    hakbun INT PRIMARY KEY,
    irum VARCHAR(20),
    hakgwa VARCHAR(20),
    addr VARCHAR(50),
    phone VARCHAR(20),
    jumin VARCHAR(20),
    grade INT
);

INSERT INTO student VALUES
(1001, '๊น€๋ฏผ์ˆ˜', '์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ', '์„œ์šธ์‹œ', '010-1234-5678', '010101-4123456', 1),
(1002, '์ด์˜ํฌ', '์ „์ž๊ณตํ•™๊ณผ', '๋ถ€์‚ฐ์‹œ', '010-9876-5432', '020202-2234567', 2);

๐Ÿ‘‰ ์ด๊ฑด MariaDB์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•ด์ค˜์•ผ ํ•ด. Workbench, DBeaver, HeidiSQL ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ํŽธํ•ด.


๐Ÿ“ฆ 3๋‹จ๊ณ„: JDBC ํ…Œ์ŠคํŠธ์šฉ Java ์ฝ”๋“œ ์ž‘์„ฑ (JDBCTest.java)

src/test0415 ํŒจํ‚ค์ง€์— ์•„๋ž˜ ํŒŒ์ผ์„ ์ƒ์„ฑ:

package test0415;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class JDBCTest {
    public static void main(String[] args) {
        // 1๏ธโƒฃ DB ์ ‘์† ์ •๋ณด
        String url = "jdbc:mariadb://localhost:3306/mybatisdb";
        String user = "root";         // ๋ณธ์ธ DB ๊ณ„์ •
        String password = "1234";     // ๋ณธ์ธ DB ๋น„๋ฒˆ

        try {
            // 2๏ธโƒฃ ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋”ฉ
            Class.forName("org.mariadb.jdbc.Driver");
            System.out.println("โœ… ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋”ฉ ์„ฑ๊ณต");

            // 3๏ธโƒฃ DB ์—ฐ๊ฒฐ
            Connection conn = DriverManager.getConnection(url, user, password);
            System.out.println("โœ… DB ์—ฐ๊ฒฐ ์„ฑ๊ณต");

            // 4๏ธโƒฃ SQL ์‹คํ–‰
            String sql = "SELECT * FROM student";
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);

            // 5๏ธโƒฃ ๊ฒฐ๊ณผ ์ถœ๋ ฅ
            while (rs.next()) {
                int hakbun = rs.getInt("hakbun");
                String irum = rs.getString("irum");
                String hakgwa = rs.getString("hakgwa");
                System.out.println("๐Ÿ“Œ " + hakbun + " / " + irum + " / " + hakgwa);
            }

            // 6๏ธโƒฃ ์ž์› ์ •๋ฆฌ
            rs.close();
            stmt.close();
            conn.close();

        } catch (Exception e) {
            e.printStackTrace();  // ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ ์ฝ˜์†” ์ถœ๋ ฅ
        }
    }
}


๐Ÿš€ 4๋‹จ๊ณ„: ์‹คํ–‰ ๊ฒฐ๊ณผ ํ™•์ธ

โ–ถ Eclipse์—์„œ JDBCTest.java ์‹คํ–‰ (Run As โ†’ Java Application)

๐Ÿ‘‰ ์ฝ˜์†” ์ถœ๋ ฅ ์˜ˆ์‹œ:

โœ… ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋”ฉ ์„ฑ๊ณต
โœ… DB ์—ฐ๊ฒฐ ์„ฑ๊ณต
๐Ÿ“Œ 1001 / ๊น€๋ฏผ์ˆ˜ / ์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ
๐Ÿ“Œ 1002 / ์ด์˜ํฌ / ์ „์ž๊ณตํ•™๊ณผ

โœ… ์ด ์ถœ๋ ฅ์ด ๋ณด์ด๋ฉด JDBC โ†’ MariaDB ์—ฐ๊ฒฐ ์„ฑ๊ณต!


๐Ÿงฏ ์˜ค๋ฅ˜ ๋Œ€์‘ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์›์ธ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•
ClassNotFoundException JDBC ๋“œ๋ผ์ด๋ฒ„ ์—†์Œ mariadb-java-client.jar์„ lib์— ์ถ”๊ฐ€ + Build Path ๋“ฑ๋ก
SQLException: Access denied DB ๊ณ„์ •/๋น„๋ฒˆ ์˜ค๋ฅ˜ root / ๋น„๋ฒˆ ํ™•์ธ ๋˜๋Š” ๊ถŒํ•œ ๋ถ€์—ฌ
Unknown database DB ์กด์žฌ ์•ˆ ํ•จ CREATE DATABASE mybatisdb ์‹คํ–‰ ํ•„์š”
Communications link failure DB ์„œ๋ฒ„ ์ ‘์† ๋ถˆ๊ฐ€ MariaDB ์‹คํ–‰ ์ค‘์ธ์ง€, ํฌํŠธ๋ฒˆํ˜ธ ๋งž๋Š”์ง€ ํ™•์ธ (3306)

โœ… 0.4๋‹จ๊ณ„: lib ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์„ฑ โ€“ JAR ํŒŒ์ผ ์™„๋ฒฝ ๋“ฑ๋กํ•˜๊ธฐ


๐Ÿ” ์™œ WEB-INF/lib์— JAR ํŒŒ์ผ์„ ๋„ฃ์–ด์•ผ ํ•ด?


๐Ÿงฑ ๊ตฌ์„ฑํ•  ํ•„์ˆ˜ JAR ๋ชฉ๋ก

์šฉ๋„ ํŒŒ์ผ๋ช… ์˜ˆ์‹œ ์„ค๋ช…
๐Ÿ“ฆ JDBC ๋“œ๋ผ์ด๋ฒ„ mariadb-java-client-3.0.3.jar Java์—์„œ MariaDB์— ์—ฐ๊ฒฐํ•  ๋•Œ ํ•„์š”
๐Ÿ“ฆ MyBatis mybatis-3.5.15.jar SQL ๋งคํ•‘ ๊ธฐ๋Šฅ ์ œ๊ณต
๐Ÿงพ ๋กœ๊ทธ ์ถœ๋ ฅ log4j-1.2.17.jar ์ฟผ๋ฆฌ ๋กœ๊ทธ, ์—๋Ÿฌ ๋กœ๊ทธ ๋“ฑ ์ถœ๋ ฅ
๐Ÿ”Œ ๊ธฐํƒ€ slf4j-api.jar, slf4j-log4j12.jar log4j์™€ ์—ฐ๋™์‹œ ํ•„์š” (๋ฒ„์ „ ๋”ฐ๋ผ ๋‹ค๋ฆ„)

๐Ÿ’ก mybatisstudy.zip ์•ˆ์— ๋Œ€๋ถ€๋ถ„ ํฌํ•จ๋˜์–ด ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„. ์—†์„ ๊ฒฝ์šฐ ์ง์ ‘ ๋‹ค์šด๋กœ๋“œํ•˜๋ฉด ๋ผ.


๐Ÿ“ 1๋‹จ๊ณ„: WEB-INF/lib ํด๋” ํ™•์ธ

  1. Eclipse์—์„œ WebContent/WEB-INF/lib ํด๋” ์—ด๊ธฐ
  2. ์•„๋ž˜ .jar ํŒŒ์ผ๋“ค์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด:

     mariadb-java-client-3.0.3.jar
     mybatis-3.5.15.jar
     log4j-1.2.17.jar
     slf4j-api-1.7.30.jar
     slf4j-log4j12-1.7.30.jar
    

โ— ๋น ์ง„ ํŒŒ์ผ์ด ์žˆ๋‹ค๋ฉด [๊ณต์‹ ์‚ฌ์ดํŠธ] ๋˜๋Š” Maven Repository์—์„œ ๊ฐœ๋ณ„ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅ.


๐ŸŒ ๊ณต์‹ ๋‹ค์šด๋กœ๋“œ ๋งํฌ ๋ชจ์Œ

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹ค์šด๋กœ๋“œ ๋งํฌ
MyBatis https://mybatis.org
MariaDB JDBC https://mariadb.com/downloads/#connectors
Log4J https://logging.apache.org/log4j/1.2/download.html
SLF4J https://www.slf4j.org/download.html

๐Ÿ”ง 2๋‹จ๊ณ„: Eclipse Build Path์— JAR ์ถ”๊ฐ€

โš ๏ธ lib ํด๋”์— jar๋ฅผ ๋„ฃ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š์•„. ๋ฐ˜๋“œ์‹œ Build Path์—๋„ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ด!

  1. ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ โ†’ Build Path โ†’ Configure Build Path
  2. [Libraries] ํƒญ ํด๋ฆญ
  3. ์˜ค๋ฅธ์ชฝ [Add JARs] ํด๋ฆญ
  4. WebContent/WEB-INF/lib ์•ˆ์˜ .jar ์ „๋ถ€ ์„ ํƒ
  5. [Apply and Close]

โœ… Build Path ๋“ฑ๋ก ์„ฑ๊ณต ํ™•์ธ๋ฒ•

  1. Referenced Libraries ํ•ญ๋ชฉ์— ์œ„์˜ JAR๋“ค์ด ๋ณด์ด๋ฉด OK
  2. ์ฝ”๋“œ์—์„œ ์•„๋ž˜์ฒ˜๋Ÿผ import๊ฐ€ ์˜ค๋ฅ˜ ์—†์ด ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธ:
import org.apache.ibatis.session.SqlSession;
import java.sql.Connection;

๐Ÿงช 3๋‹จ๊ณ„: ๊ฐ„๋‹จํ•œ ๋กœ๊ทธ ์ถœ๋ ฅ ํ…Œ์ŠคํŠธ (log4j ์ž‘๋™ ํ™•์ธ)

log4j.properties ํŒŒ์ผ์ด src ๋˜๋Š” WEB-INF/classes ํด๋”์— ์žˆ์–ด์•ผ ํ•จ:

log4j.rootLogger=DEBUG, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %m%n

์‹คํ–‰ ์‹œ ์ฝ˜์†”์— ์ฟผ๋ฆฌ ๋กœ๊ทธ๋‚˜ DEBUG ๋ฉ”์‹œ์ง€๊ฐ€ ๋ณด์ด๋ฉด log4j ์ •์ƒ ์ž‘๋™!


๐Ÿงฏ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ์™€ ํ•ด๊ฒฐ๋ฒ•

์ฆ์ƒ ์›์ธ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•
ClassNotFoundException jar ํŒŒ์ผ ๋ˆ„๋ฝ lib์— ๋„ฃ๊ณ  Build Path ๋“ฑ๋ก
No suitable driver found ๋“œ๋ผ์ด๋ฒ„ ๋ถˆ์ผ์น˜ mariadb-java-client.jar ๋ฐ˜๋“œ์‹œ ํ™•์ธ
์ฟผ๋ฆฌ ๋กœ๊ทธ ์•ˆ ์ฐํž˜ log4j ์„ค์ • ๋ˆ„๋ฝ log4j.properties ์ž‘์„ฑ + ๋“ฑ๋ก ํ™•์ธ