JDBC
Java DataBase Connectivity Java์์ Database๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ API
JDBC ๋๋ผ์ด๋ฒ ์ฐ๊ฒฐ ๊ณผ์
์ปค๋ฅํฐ ํ์ผ ์ค์น
- C:\Program Files\Java\jre1.8.0_101\lib\ext ๊ฒฝ๋ก์
.jarํ์ผ ๋ถ์ฌ๋ฃ๊ธฐ ํ๋ก์ ํธ ์ฐํด๋ฆญย โยpropertiesโยJava Build Pathโ์๋จ ๋ฉ๋ด Libraries ์ ํโยAdd LibraryโUser LibraryโยUser LibrariesโยNewโ์ด๋ฆ ์ ๋ ฅ(jdbc๋ก ์ค์ )โยUser LibrariesโAdd External JARsโฆโ.jar ํ์ผ ์ ํโApply and CloseโFinish
์์ค์ฝ๋ ์ ๋ ฅ (Importํ Driver ํ์ผ์ย ๊ฐ์ฒดํํ๋ ๊ณผ์ )
1. DB Driver ๋ก๋
String driver = "com.mysql.cj.jdbc.Driver";
Class.forName(driver);
- MySQL : com.mysql.cj.jdbc.Driver
- Oracle : oracle.jdbc.driver.OracleDriver
- MSSQL : com.microsoft.sqlserver.jdbc.SQLSeverDriver
2. ๋ก๊ทธ์ธ ์ ๋ณด ์ ๋ ฅ
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection
{
public static Connection dbConn;
public static Connection getConnection()
{
Connection conn = null;
try {
String user = "scott";
String pw = "tiger";
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, user, pw);
System.out.println("Database์ ์ฐ๊ฒฐ๋์์ต๋๋ค.\\n");
} catch (ClassNotFoundException cnfe) {
System.out.println("DB ๋๋ผ์ด๋ฒ ๋ก๋ฉ ์คํจ :"+cnfe.toString());
} catch (SQLException sqle) {
System.out.println("DB ์ ์์คํจ : "+sqle.toString());
} catch (Exception e) {
System.out.println("Unkonwn error");
e.printStackTrace();
}
return conn;
}
}
๐ DB ์ฃผ์ ๊ตฌ์กฐ
| DB | IP์ฃผ์ | ํฌํธ | DB๋ช |
|---|---|---|---|
| jdbc:oracle:thin: | @localhost: | 1521: | orcl |
3. ๋ฐ์ดํฐ ์ ๋ ฅ
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class OracleTest
{
public static void main(String args[])
{
Connection conn = null; // DB์ฐ๊ฒฐ๋ ์ํ(์ธ์
)์ ๋ด์ ๊ฐ์ฒด
PreparedStatement pstm = null; // SQL ๋ฌธ์ ๋ํ๋ด๋ ๊ฐ์ฒด
ResultSet rs = null; // ์ฟผ๋ฆฌ๋ฌธ์ ๋ ๋ฆฐ๊ฒ์ ๋ํ ๋ฐํ๊ฐ์ ๋ด์ ๊ฐ์ฒด
try {
// SQL ๋ฌธ์ฅ์ ๋ง๋ค๊ณ ๋ง์ฝ ๋ฌธ์ฅ์ด ์ง์์ด(SELECT๋ฌธ)๋ผ๋ฉด
// ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ด์ ResulSet ๊ฐ์ฒด๋ฅผ ์ค๋นํ ํ ์คํ์ํจ๋ค.
String quary = "SELECT * FROM EMP";
conn = DBConnection.getConnection();
pstm = conn.prepareStatement(quary);
rs = pstm.executeQuery();
/* EMP ํ
์ด๋ธ์ ๋ฐ์ดํฐ ํ์
*
EMPNO NOT NULL NUMBER(4) -- int
ENAME VARCHAR2(10) -- String
JOB VARCHAR2(9) -- String
MGR NUMBER(4) -- int
HIREDATE DATE -- Date
SAL NUMBER(7,2) -- float/double
COMM NUMBER(7,2) -- float/double
DEPTNO NUMBER(2) -- int
*/
System.out.println("EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO");
System.out.println("============================================");
while(rs.next()){ //๋ฐ์ดํฐ๊ฐ ์์๋๊น์ง ๋ฐ๋ณต
int empno = rs.getInt(1);
//int empno = rs.getInt("empno"); ์ซ์ ๋์ ์ปฌ๋ผ ์ด๋ฆ์ ์ ์ด๋ ๋๋ค.
String ename = rs.getString(2);
String job = rs.getString(3);
int mgr = rs.getInt(4);
java.sql.Date hiredate = rs.getDate(5); // Date ํ์
์ฒ๋ฆฌ
int sal = rs.getInt(6);
int comm = rs.getInt(7);
int deptno = rs.getInt(8);
String result = empno+" "+ename+" "+job+" "+mgr+" "+hiredate+" "+sal+" "+comm+" "+deptno;
System.out.println(result);
}
} catch (SQLException sqle) {
System.out.println("SELECT๋ฌธ์์ ์์ธ ๋ฐ์");
sqle.printStackTrace();
}finally{
// DB ์ฐ๊ฒฐ์ ์ข
๋ฃํ๋ค.
try{
if ( rs != null ){rs.close();}
if ( pstm != null ){pstm.close();}
if ( conn != null ){conn.close(); }
}catch(Exception e){
throw new RuntimeException(e.getMessage());
}
}
}
}