개발 일기

oracle DB연결 후 JDBC 테스트

권쓰 2018. 12. 27. 14:59
728x90

각 라인마다 주석을 보고 최대한 쉽게 풀어놓았습니다. 


package test;


import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;



----------DB연결을 위한 클래스 DBConnection.java ----------


public class DBConnection {

public static Connection getConnection() {

// 2. DB연결 할 Connection 을 선언 import java.sql.Connection;

Connection conn = null;

try {

String user = "system";

String pw = "test";

String url = "jdbc:oracle:thin:@localhost:1521:orcl";


// 1. 드라이버 로딩

Class.forName("oracle.jdbc.driver.OracleDriver");


// 3. DriverManager를 통해서 DB에 연결한다. import java.sql.DriverManager

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작업 PreparedStatementTest.java ----------

package test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class PreparedStatementTest {
public static void main(String args[]) {
// 4.연결 준비 import java.sql.Connection & PreparedStatment
Connection conn = null; // DB연결된 상태(세션)을 담은 객체
PreparedStatement pstm = null; // SQL 문을 나타내는 객체

// 10. 데이터가져오기 전 선언
ResultSet rs = null;

try {
// 5. 쿼리문 선언
String query = "INSERT INTO TEST VALUES(?,?,?)";

// 6. 3번에 접근 후 conn변수에 대입
conn = DBConnection.getConnection(); // DBConnection.java에 접근

// 7. 쿼리 날릴 준비
pstm = conn.prepareStatement(query);

// 8. 쿼리문 ? 안에 들어갈 값 순서대로 setString or Setint로 값 넣기.
pstm.setString(1, "test002");
pstm.setInt(2, 28);
pstm.setString(3, "서울시");

// 9. 쿼리문 실행
int success = pstm.executeUpdate();

if (success > 0) {
System.out.println("데이터 입력 성공");
} else {
System.out.println("데이터 입력 실패");
}

} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
}


--결과

SQL> select * from test;

NAME              AGE ADDR
---------- ---------- ------------------------------
test001            28 서울시