Class.forName(" driver "); //드라이브 연결
(못찾을 경우는 ClassNotFoundException 예외발생)
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(url, user_ID, user_password);
// DB에 접속하는 객체 담기
로드된 드라이버와 Connection
을 연결해주는 객체 DriverManager
사용
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(url, user_ID, user_password);
Statement st = con.createStatement
연결된 connection
객체에서 SQL 구문을 실행하는 역할을 하는 statement
호출
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(url, user_ID, user_password);
Statement st = con.createStatement;
ResultSet rs = st.executeQuery(sql);
Statement
객체의 executeQuery
에 SQL구문을 담아 ResultSet
객체에 담아 (ResultSet)타입으로 결과값을 저장.
함수들이 호출 된 후에 컴퓨터의 자원을 계속 사용할 우려가 있어서 해당 로직실행의 끝에는 close()
사용.
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(url, user_ID, user_password);
Statement st = con.createStatement;
ResultSet rs = st.executeQuery(sql);
.
.//임의의 로직
.
.
rs.close();
st.close();
con.close();
con
ㅡ> st
ㅡ> rs
순서로 실행되고 있으므로 종료할때는 역순으로 진행.
우리가 read를 할때는 데이터를 받아와서 객체에 담아주는데, 그 외에 생성과 삭제와 업데이트는 데이터를 받을 필요가 있을까?
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(url, user_ID, user_password);
Statement st = con.createStatement(sql);
.
.//임의의 로직
.
.
st.close();
con.close();
데이터를 받을 필요가 없으므로 바로 sql구문으로 명령을 내려준다.
우리가 데이터를 입력해야 하는 상황이라고 생각하자.
그렇다면 코드는 이러할 것이다.
String url = "INSERT INTO member ("
+ " id,"
+ " pwd,"
+ " name"
+ " "
+ ") VALUES ("
+ " 'dfadsfsadf',"
+ " '12344',"
+ " '덕이네'"
+ " "
+ ")";
//임의로 구성한 테이블
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(url, user_ID, user_password);
Statement st = con.createStatement(sql);
.
.//임의의 로직
.
.
st.close();
con.close();
한눈에 봐도 데이터 넣기에 가독성이 매우 떨어지지 않는가?
이러한 것은 PreparedStatement
객체를 이용하여 해결할 수 있다.
String sql = "INSERT INTO member ("
+ " id,"
+ " pwd,"
+ " name"
+ " "
+ ") VALUES (?,?,?)";
//임의로 구성한 테이블
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection(url, "c##bmm522", "1234");
PreparedStatement st = con.prepareStatement(sql);
데이터를 넣는 방식이 매우 깔끔해 진것을 볼 수 있다.