๋ฐ์ดํฐ ์ ํ
ํ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
"C:\Program Files\Java\jdk-17.0.3.1\bin\java.exe... | |||
ID | java.lang.Integer | ์ง๋ฅ | 4 |
์ด๋ฆ | java.lang.string | VARCHAR | 12 |
์์ค | java.lang.Integer | ์ง๋ฅ | 4 |
๋ง๋ ๋ ์ง | java.sql.๋ ์ง | ๋ ์ง | 91 |
์ข ๋ฃ ์ฝ๋ 0์ผ๋ก ํ๋ก์ธ์ค ์๋ฃ |
์ธ ๋ฒ์งธ ์ด์๋ INT , VARCHAR , DATE ์ ํ์ด ํ์๋ฉ๋๋ค . ์ด๋ค์ SQL ์๋ฒ ์ ํ์ ๋๋ค. ์๋ฒ ์๋จ์ ๊ทธ๊ฐ ์๊ณ ์๋ ์ ํ์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ์ ํ์ ์ด๋ป๊ฒ Java ์ ํ์ผ๋ก ๋ณํ๋ฉ๋๊น?
์ด๊ฒ์ ์ ํํ JDBC๋ก ํ์คํ๋ ๊ฒ ์ค ํ๋์ ๋๋ค. JDBC ์์ฑ์๋ SQL ์ ํ ๋ชฉ๋ก์ ์์ ํ๋ ๊ฒ์ผ๋ก ์์ํ์ต๋๋ค. ์์๊ฐ ์๋ ํน์ ํด๋์ค๊ฐ ์์ต๋๋ค.
class java.sql.Types {
public static final int CHAR = 1;
public static final int NUMERIC = 2;
public static final int DECIMAL = 3;
public static final int INTEGER = 4;
public static final int FLOAT = 6;
public static final int REAL = 7;
โฆ
}
๋ฒํธ๋ ํด๋์ค์ ์ผ๋ จ ๋ฒํธ๊ฐ ์๋๋ผ SQL ์ฌ์์ SQL ์ ํ ๋ชฉ๋ก์ ์๋ ID ์ ํ์ ๋๋ค. ๊ฐ์ ์์ ๋ถ๋ถ์ ์์์ ๋ณธ ์ซ์์ ๋๋ค.
๋ํ ResultSet ํด๋์ค์๋ ํ ๋ฐ์ดํฐ ์ ํ์ ๋ค๋ฅธ ๋ฐ์ดํฐ ์ ํ์ผ๋ก ๋ณํํ ์ ์๋ ๋ฉ์๋๊ฐ ์์ต๋๋ค. ๋ชจ๋ ์ ํ์ด ์๋ก ๋ณํ๋ ์๋ ์์ง๋ง ๋ ผ๋ฆฌ๋ ์ถฉ๋ถํ ๋ช ํํฉ๋๋ค. ๋ค์์ ์ ์ฉํ ์คํ๋ ๋์ํธ์ ๋๋ค.
๋ฐฉ๋ฒ | SQL ๋ฐ์ดํฐ ์ ํ |
---|---|
์ ์ getInt() | ์ซ์, ์ ์, ์ญ์ง์ |
ํ๋กํธ getFloat() | ์ซ์, ์ ์, ์ญ์ง์, ์ค์, ์ค์ |
๋๋ธ getDouble() | ์ซ์, ์ ์, ์ญ์ง์, ์ค์, ์ค์ |
๋ ์ง getDate() | ๋ ์ง, ์๊ฐ, ํ์์คํฌํ |
์๊ฐ getTime() | ๋ ์ง, ์๊ฐ, ํ์์คํฌํ |
ํ์์คํฌํ getTimestamp() | ๋ ์ง, ์๊ฐ, ํ์์คํฌํ |
๋ฌธ์์ด getString() | ์ฐจ๋ฅด, ๋ฐ์ฐจ๋ฅด |
๋ชจ๋ SQL ์ ํ ์ค์์ ์ผ๋ถ ๊ทธ๋ฃน์ ๋ช ํํ๊ฒ ๊ตฌ๋ณํ ์ ์์ต๋๋ค.
- ์ซ์
- ์๊ฐ
- ์ค๊ณฝ
- ๋ฐ์ดํธ ๊ฐ์ฒด
๊ทธ๊ฑด ๊ทธ๋ ๊ณ , getInt() ๋ฉ์๋๋ฅผ ๋ณด์ จ๋์ ?
JDBC ๋ฐ NULL
ResultSet ํด๋์ค ์ getInt() ๋ฉ์๋ ์ ์ด๋ค ๋ฌธ์ ๊ฐ ์๋์ง ์์์ฐจ๋ ธ์ต๋๊น ? ์๋ช ์ ๋ค์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
int getInt(column)
์ด ๋ฉ์๋๋ Integer๊ฐ ์๋ int๋ฅผ ๋ฐํํฉ๋๋ค. JDBC ์ ํ Integer๊ฐ ์์ฑ๋ ๋น์์๋ ์์ง ์กด์ฌํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ข์, ๋งํด ๋ณด์. ๊ทธ๋ฐ ๋ค์ ์ง๋ฌธ์ด ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ INT์ผ ์๋ ์์ง๋ง NULL์ผ ์๋ ์๋ INT NULL ์ด์ด ์๋ ํ ์ด๋ธ์ด ์์ต๋๋ค. ์ด ์ด์์ null ๊ฐ์ ์ด๋ป๊ฒ ์ป์ ์ ์์ต๋๊น?
๊ฑฑ์ ํ์ง ๋ง์ญ์์ค. ๋ชจ๋ ๊ฒ์ด ๋น์ ์ ์ํด ์๊ฐ๋์์ต๋๋ค.
์๋ฃจ์ 1 . Java์ SQL ์ ํ์ด ๋ ์ง ๋๋ ๋ฌธ์์ด๊ณผ ๊ฐ์ ์ฐธ์กฐ ์ ํ์ผ๋ก ํ์๋๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค . ์ด ์ ํ์ ๋ณ์๋ null ๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค.
์๋ฃจ์ 2 . ๊ธฐ๋ณธ ์ ํ์ null์ผ ์ ์์ผ๋ฏ๋ก getInt() ์ ๊ฐ์ ๋ฉ์๋๋ ๋จ์ํ ๊ธฐ๋ณธ๊ฐ์ ๋ฐํํฉ๋๋ค . int์ ๊ฒฝ์ฐ 0, float์ ๊ฒฝ์ฐ 0.0f, double์ ๊ฒฝ์ฐ 0.0d ๋ฑ์ ๋๋ค.
๊ทธ๋ฐ ๋ค์ 0 ๋๋ NULL ์ด์ ๋ฌด์์ด ์๋์ง ์ดํดํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ๊ทธ๋ฆฌ๊ณ ๋น์ ์ด ์ง๋ฌธ์ ๋ํ ๋ต์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์๋ฃจ์ 3 . ResultSet ํด๋์ค์๋ ๋ฉ์๋๊ฐ NULL ๋์ ๋ค๋ฅธ ๊ฐ์ ๋ฐํํ ๊ฒฝ์ฐ true๋ฅผ ๋ฐํํ๋ ํน๋ณํ wasNull() ๋ฉ์๋๊ฐ ์์ต๋๋ค .
๋ชจ๋ ๊ฒ์ด ๋ด๊ฐ ์ฌ๊ธฐ์ ์ด ๋๋ก ์ ํํ๊ฒ ์๋ํฉ๋๋ค. ์:
ResultSet results = staatement.executeQuery("SELECT * FROM user");
int level = results.getInt("level");
if (results.wasNull()) {
System.out.println("Level is null");
} else {
System.out.println("Level is " + level);
}
getInt() ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ null์ ๋ฐํํด์ผ ํ๋ ๊ฒฝ์ฐ wasNull() ๋ฉ์๋๋ true๋ฅผ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด wasNull() ๋ฉ์๋ ๋ false๋ฅผ ๋ฐํํฉ๋๋ค.
์ด๊ฒ์ ๊ธฐ๋ณธ ์ ํ์ ๋ํด์๋ง ์๋ํ๋ ๊ฒ์ด ์๋๋๋ค.
ResultSet results = staatement.executeQuery("SELECT * FROM user");
String name = results.getString("name");
if (results.wasNull()) {
System.out.println("Name is null");
} else {
System.out.println("User name is " + name);
}
์ด๊ฒ์ ๋ฌผ๋ก ๋ชฉ๋ฐ์ ๋๋ค. ๊ทธ๋ฌ๋ NullPointerException ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค . ๋ชจ๋ ๊ฒ์์ ๊ธ์ ์ ์ธ ๋ฉด์ ํ์ธํ์ธ์ :)
JDBC์ ๋ฐ์ดํฐ ์ ํ์ ์ด๋ค ๋ฌธ์ ๊ฐ ์์ต๋๊น?
ํ ์คํธ๋ฅผ ๊ณ์ํฉ์๋ค. getDate(column) ๋ฉ์๋๋ฅผ ์์ธํ ์ดํด๋ณด์ญ์์ค . ๊ทธ์๊ฒ ๋ฌด์จ ๋ฌธ์ ๊ฐ ์์ต๋๊น? ์ด ๋ฉ์๋์ ๊ฒฐ๊ณผ ์ ํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
java.sql.Date
null์ ์ ์ฅํ ์ ์์ผ๋ฉฐ ์ด ์ ๋๋ฉด ์ถฉ๋ถํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ ํ ๊ทธ์๊ฒ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋จ์! ์ฌ๋ฐ๋ฅธ ๋ ์ง ์ ํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
java.util.Date
๊ทธ๋ค์ ๋ค๋ฅธ ํจํค์ง๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค! ์ด๋ค์ ์ผ๋ฐ์ ์ผ๋ก ๋ค๋ฅธ ์ ํ์ ๋ฐ์ดํฐ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ์ด์ ๊ฐ ์์ต๋๋ค...
20์ธ๊ธฐ 70๋ ๋ ์ดํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์๊ฐ ์ ์ฅ์ ์ํด 3๊ฐ์ง ์ ํ์ ๋ฐ์ดํฐ๋ฅผ ์ง์ํฉ๋๋ค.
- DATE - ๋ ์ง๋ฅผ ์ ์ฅํฉ๋๋ค: ๋ , ์, ์ผ.
- TIME - ์๊ฐ ์ ์ฅ: ์, ๋ถ, ์ด.
- TIMESTAMP - ํน์ ์์ (๋ ์ง, ์๊ฐ ๋ฐ ๋ฐ๋ฆฌ์ด)์ ์ ์ฅํฉ๋๋ค.
์ฒ์ 10๋ ๋์ Java ์ธ์ด์๋ UNIX TIME ํ์์ผ๋ก ํน์ ์์ (1970๋ ์ด ์ดํ์ ๋ฐ๋ฆฌ์ด ์)์ ์ ์ฅํ๋ ํ๋์ ๋ฐ์ดํฐ ์ ํ์ธ java.util.Date ๋ง ์์์ต๋๋ค.
๋ฐ๋ผ์ JDBC ํ์ค์ ์์ฑ์๋ ํนํ JDBC๋ฅผ ์ํด ์ธ ๊ฐ์ง ๋ฐ์ดํฐ ์ ํ์ Java์ ์ถ๊ฐํ์ต๋๋ค.
- java.sql.๋ ์ง
- java.sql.์๊ฐ
- java.sqlํ์์คํฌํ
๋ฐ๋ผ์ ResultSet ์ธํฐํ์ด์ค ์ ๋ฉ์๋์๋ ๊ณ ์ ๋ฐ์ดํฐ ์ ํ์ด ํฌํจ๋ฉ๋๋ค.
SQL ์ ํ | ์๋ฐ ์ ํ | ๋ฐฉ๋ฒ |
---|---|---|
๋ ์ง | java.sql.๋ ์ง | java.sql.date getDate() |
์๊ฐ | java.sql.์๊ฐ | java.sql.Time getTime() |
ํ์์คํฌํ | java.sql.ํ์์คํฌํ | java.sql.Timestamp getTimestamp() |
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์ฌ๊ธฐ์์ ๋ณผ ์ ์๋ ์ ํ์ ๋๋ค.
"C:\Program Files\Java\jdk-17.0.3.1\bin\java.exe... | |||
ID | java.lang.Integer | ์ง๋ฅ | 4 |
์ด๋ฆ | java.lang.string | VARCHAR | 12 |
์์ค | java.lang.Integer | ์ง๋ฅ | 4 |
๋ง๋ ๋ ์ง | java.sql.๋ ์ง | ๋ ์ง | 91 |
์ข ๋ฃ ์ฝ๋ 0์ผ๋ก ํ๋ก์ธ์ค ์๋ฃ |
์ฌ๊ธฐ์ ๋ฌด์์ด ๋น ์ก๋์ง ๋ง์ถฐ๋ณด์ธ์? Java DateTime API์ ๋ํ๋ ๋ฐ์ดํฐ ์ ํ:
- ํ์ง ๋ ์ง
- ํ์ง ์๊ฐ
- LocalDateTime
GO TO FULL VERSION