** ๐DBConnection ํด๋์ค ์ค๊ณ (MariaDB ์ฐ๊ฒฐ) **
Java์์ MariaDB์ ์์ ํ๊ฒ ์ฐ๊ฒฐํ๋ ๊ณตํต ํด๋์ค ๋ง๋ค๊ธฐ
์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ตฌ์กฐ, ์๋ฌ ๋ฐฉ์ง ํ, ๊ธฐ์ ๋ฉด์ ๋๋น๊น์ง ํฌํจ
๐งฉ ๋ชฉ์ฐจ
- DB ์ฐ๊ฒฐ์ด๋?
- DBConnection ํด๋์ค์ ์ญํ
- ๊ธฐ๋ณธ ์ฐ๊ฒฐ ๊ตฌ์กฐ (JDBC + MariaDB)
- ์ค์ ์์ ์ฝ๋
- ์ค๋ฌด ์๋ฌ ๋ฐฉ์ง ํ
- ๊ธฐ์ ๋ฉด์ ๋๋น ํต์ฌ ์์ฝ
- ๋ง๋ฌด๋ฆฌ ์ ๋ฆฌ + Notion ์์ฑ ํ
โ
1. DB ์ฐ๊ฒฐ์ด๋?
ํญ๋ชฉ |
์ค๋ช
|
๋ชฉ์ |
Java ์ ํ๋ฆฌ์ผ์ด์
์์ MariaDB(MySQL) ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๊ธฐ ์ํจ |
๋ฐฉ๋ฒ |
JDBC (Java Database Connectivity) API๋ฅผ ์ฌ์ฉํด ์ฐ๊ฒฐ |
๊ตฌ์ฑ ์์ |
Driver, Connection, Statement, ResultSet ๋ฑ ์ฌ์ฉ๋จ |
โ
2. DBConnection ํด๋์ค์ ์ญํ
๊ธฐ๋ฅ |
์ค๋ช
|
๐ ์ฐ๊ฒฐ ์ฝ๋ ์ฌ์ฌ์ฉ |
์ฌ๋ฌ DAO ํด๋์ค์์ ๋ฐ๋ณต๋๋ DB ์ฐ๊ฒฐ ์ฝ๋๋ฅผ ๋ชจ๋ํ |
๐ ๋ณด์์ฑ ๊ฐํ |
DB ๊ณ์ ์ ๋ณด๋ฅผ ํ ๊ณณ์ ๋ชจ์ ๊ด๋ฆฌ ๊ฐ๋ฅ |
๐งผ ์ ์ง๋ณด์ ์ฉ์ด |
๋ณ๊ฒฝ ์ ํ ํ์ผ๋ง ์์ ํ๋ฉด ์ ์ฒด ๋ฐ์๋จ |
โ ์์ธ ์ฒ๋ฆฌ ํตํฉ |
try-catch๋ก ์์ธ ๋ฐ์ ์ ๊ณตํต ์ฒ๋ฆฌ ๊ฐ๋ฅ |
โ
3. ๊ธฐ๋ณธ ์ฐ๊ฒฐ ๊ตฌ์กฐ (JDBC + MariaDB)
โ ๋๋ผ์ด๋ฒ ๋ก๋ฉ
Class.forName("org.mariadb.jdbc.Driver");
โก DB ์ฐ๊ฒฐ
Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
โ
4. ์ค์ ์์ ์ฝ๋ ๐ฏ
๐ DB.java (๊ณตํต ์ฐ๊ฒฐ ์ ํธ๋ฆฌํฐ ํด๋์ค)
// ๐ DB.java
import java.sql.Connection;
import java.sql.DriverManager;
public class DB {
public static Connection getConnection() throws Exception {
// 1. ๋๋ผ์ด๋ฒ ๋ก๋ฉ
Class.forName("org.mariadb.jdbc.Driver");
// 2. ์ ์ ์ ๋ณด
String url = "jdbc:mariadb://localhost:3306/mydb";
String user = "myuser";
String password = "mypassword";
// 3. ์ฐ๊ฒฐ ๋ฐํ
return DriverManager.getConnection(url, user, password);
}
}
โ
์ฌ์ฉ ์ (DAO์์ ํ์ฉ)
Connection conn = DB.getConnection();
โ
5. ์ค๋ฌด ์๋ฌ ๋ฐฉ์ง ํ ๐ก๏ธ
๋ฌธ์ ์ํฉ |
ํด๊ฒฐ ๋ฐฉ๋ฒ |
โ ClassNotFoundException |
mariadb-java-client-x.x.x.jar ๋๋ผ์ด๋ฒ ๋๋ฝ โ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ ํ์ |
โ Access denied |
DB ๊ณ์ , ๋น๋ฐ๋ฒํธ ์ค๋ฅ โ ์ฌ์ฉ์ ๊ถํ ํ์ธ |
โ Unknown database |
DB ์ด๋ฆ ์คํ ๋๋ DB ๋ฏธ์์ฑ โ DB ๋จผ์ ์์ฑํ ๊ฒ |
๐ ์ปค๋ฅ์
๋ฏธํด์ |
DB ์ฐ๊ฒฐ ํ ๋ฐ๋์ conn.close() ํธ์ถ ํ์ |
โ
6. ๊ธฐ์ ๋ฉด์ ๋๋น ํต์ฌ ์์ฝ ๐ฌ
์ง๋ฌธ |
์์ ์ ๋ฆฌ |
JDBC ์ฐ๊ฒฐ ์์๋? |
โ ๋๋ผ์ด๋ฒ ๋ก๋ฉ โ โก URL ์ค์ โ โข getConnection() ํธ์ถ |
DBConnection ํด๋์ค๋ฅผ ์ ๋ฐ๋ก ๋ง๋๋์? |
์ค๋ณต ์ ๊ฑฐ, ์ฌ์ฌ์ฉ์ฑ, ์ ์ง๋ณด์, ๋ณด์ ํฅ์ ๋ชฉ์ |
์์ธ ์ฒ๋ฆฌ๋ ์ด๋ป๊ฒ ํ๋์? |
try-catch ์ฌ์ฉ ๋๋ throws ๋์ ธ DAO์์ ์ฒ๋ฆฌ |
JDBC์ ์ฃผ์ ๊ฐ์ฒด๋? |
Connection , PreparedStatement , ResultSet |
โ
7. ๋ง๋ฌด๋ฆฌ ์์ฝ ๐ง
- โ DB ์ฐ๊ฒฐ = JDBC ๋๋ผ์ด๋ฒ + URL + ๊ณ์ ์ ๋ณด
- ๐ฆ DBConnection ํด๋์ค๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฐ๊ฒฐ ํจ์
- ๐ ์ ์ ์ ๋ณด๋ ํ ๊ณณ์์ ๊ด๋ฆฌ = ๋ณด์ + ์ ์ง๋ณด์ โ
- โ
์ค์ ์๋น์ค์์๋ ์ปค๋ฅ์
ํ (HikariCP, DBCP) ๋ ํจ๊ป ๊ณ ๋ ค ํ์