JDBC는 데이터베이스를 자바에 연결해 사용하는 것인데
대부분이 오라클을 사용하는 만큼 오라클을 사용해 CRUD를 수행해 보자
오라클을 어떻게 자바에 연결하는지 모르겠다면
아래 글을 따라하면 된다
일단 CREATE TABLE로 미리 테이블을 만들어 사용하자
비겁하게 보일 수도 있겠지만 CREATE TABLE을 자바에서 해 버리면
출력할 때마다 테이블을 만드는 것이 되는데
그걸 없앨라고 DROP을 같이 해버리면 대체 테이블이 뭔 의미인가
이래서 테이블은 미리 만들어 놔야 하고
다음으로는 INSERT, SELECT, DELETE 순으로 넘어간다
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectionTest {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver"); // 드라이버 로딩
System.out.println("드라이버 로딩 성공..");
String sql = "INSERT INTO TEST_TABLE VALUES('하하', 123) "; // INSERT Query
String sql2 = "SELECT * FROM TEST_TABLE "; // SELECT Query
String sql3 = "DELETE FROM TEST_TABLE "; // DELETE Query
String url = "jdbc:oracle:thin:localhost:1521:SID";
String id = "scott"; // 접속 ID
String pass = "tiger"; // 접속 PW
Connection conn = DriverManager.getConnection(url,id,pass); // 드라이버 접속
System.out.println("드라이버 접속 성공!");
Statement stmt = conn.createStatement();
stmt.executeQuery(sql); // INSERT
ResultSet rs = stmt.executeQuery(sql2); // SELECT 한 내용 RS에 넣기
while(rs.next()) { // ResultSet에 다음 값이 없을때까지 출력
String name = rs.getString("NAME"); // 컬럼 값 받아오기
int val = rs.getInt("VAL");
System.out.println("NAME : " + name + " VAL : " + val);
}
stmt.executeQuery(sql3); // DELETE
// 연결 끊기
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
보면 비겁하게 저번에 사용한 내용에서 INSERT와 DELETE만 추가한 것이 보이는데
미리 쿼리문을 String에 담아 둔 다음에
Statement를 사용해 쿼리를 수행한다
stmt.execute(sql) 을 사용하면 아까 위에 정의해둔 쿼리를 수행하게 되는 것이다
보면 INSERT 쿼리 수행 후
SELECT 쿼리를 수행해서 그 결과를 ResultSet 안에 담고
while(rs.next) {
}
를 통해서 조회한 쿼리를 모두 뽑아낸 다음
DELETE 쿼리를 수행해서 아까 추가한 내용을 지운다
DELETE가 없으면 계속 한줄씩 추가되니까..
위 링크에 있는 내용이라 쓰지 말까 했는데
JDBC는
1. Class.forName("oracle.jdbc.driver.OracleDriver");
로 드라이버를 로딩하고
2. Connection conn = DriverManager.getConnection(url,id,pass);
로 드라이버에 접속하고
3. Statement stmt = conn.createStatement();
접속한 정보를 Statement에 담아서 stmt를 통해 쿼리를 수행할 수 있게 하고
4. stmt.executeQuery(sql);
이런 식으로 쿼리를 수행한다
5. 출력 시에는 ResultSet 안에 수행한 쿼리 내용을 담아준 뒤, while(rs.next()) {} 로 뽑아준다
while을 사용하는 이유는 SELECT 시 결과가 한 줄만 나오는 경우는 거의 없기 때문..
6. JDBC 사용 시 Connection, Statement, ResultSet 순으로 사용하는데
종료 시에는 역순으로 ResultSet, Statement, Connection 순으로 .close() 해 주면 된다
'IT > Java' 카테고리의 다른 글
자바 AWT로 화면 만들기 (0) | 2019.05.21 |
---|---|
Statement PreparedStatement 차이 알아보기 (0) | 2019.05.15 |
자바 JDBC 연결해 출력하기 (0) | 2019.05.12 |
카멜 케이스(Camel case) 표기법 알아보기 (0) | 2019.03.14 |
자바 오버라이딩, 오버로딩 사진 하나로 구분하기 (0) | 2019.02.21 |
댓글