각 라인마다 주석을 보고 최대한 쉽게 풀어놓았습니다.
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 서울시