<2020.09.29>
고급자바 '6-1.네트워크'하기 전에 진행
JDBC 드라이버 로딩 (오라클 기준)
=> BuildPath에 잘 잡혀있는지 확인
=> JDBC드라이버는 DB를 만든 회사에서 제공
Class.forName("oracle.jdbc.driver.OracleDriver");
접속하기 : 접속이 성공하면 Connection 객체 생성
=> 접속요청, 해당 커넥션에 관련된 객체를 리턴
DriverManager.getConnection()메서드 이용
질의
: Statement객체 또는 PreparedStatement객체를 이용하여
'SQL문장'실행
결과
: SQL문이 select일 경우 => ResultSet객체가 만들어진다.
: SQL문이 insert, update, delete일 경우 => 정수값을 반환
6_1.JDBCTest // T01_JdbcTest
Connection conn = null; // 드라이버 로딩
Statement stmt = null; // 질의 -> sql문장 실행
ResultSet rs = null;// 쿼리문이 select일 경우 실행
드라이버 로딩
Class.forName("oracle.jdbc.driver.OracleDriver");
질의
stmt = conn.createStatement();
String sql = "블라라라라라";
결과
rs = stmt.executeQuery(sql);
while(rs.next()){
rs.get()~~~
}
public class T01_JdbcTest {
public static void main(String[] args) {
//DB작업에 필요한 객체변수 선언
Connection conn = null; //드라이버 로딩
Statement stmt = null; // 질의 -> sql문장 실행
ResultSet rs = null; //쿼리문이 select일 경우에 사용됨
try {
//1. 드라이버 로딩(옵션) : 반드시해야되는건아님
//클래스 객체가 리턴됨
Class.forName("oracle.jdbc.driver.OracleDriver");
//2. DB접속 (Connection객체 생성)
String url = "jdbc:oracle:thin:@localhost:1521/xe";
String userId = "zhyun";
String password = "java";
conn = DriverManager.getConnection(url, userId, password);
//3. Statement객체 생성 => Connection객체를 이용한다.
stmt = conn.createStatement();
//4. SQL문을 Statement객체를 이용하여 실행하고 실행결과를 ResultSet에 저장함.
String sql = "select * from lprod";
rs = stmt.executeQuery(sql);
/**
* SQL문이 select일 경우에는 executeQuery()메서드 호출하고,
* insert, update, delete일 경우에는 executeUpdate()메서드 호출함.
*/
//5.ResultSet 객체에 저장되어 있는 자료를 반복문과 next()메서드를
// 이용하여 차례로 읽어와 처리한다.
System.out.println("실행한 쿼리문 : "+sql);
System.out.println("=== 쿼리문 실행 결과 ===");
// rs.next() => ResultSet객체의 데이터를 가리키는 포인터를
// 다음 레코드로 이동시키고 그 곳에 자료가 있으면
// true, 없으면 false를 반환한다.
while(rs.next()) {
//컬럼의 자료를 가져오는 방법
//방법1) rs.get자료형 이름("컬럼명")
//방법2) rs.get자료형 이름("컬럼번호") => 컬럼번호는 1부터 시작
// System.out.println("lprod_id : "+ rs.getInt("lprod_id"));
System.out.println("lprod_id : "+ rs.getInt(1)); // 컬럼숫자로 대체해도 가능
System.out.println("lprod_gu : "+ rs.getString("lprod_gu"));
System.out.println("lprod_nm : "+ rs.getString("lprod_nm"));
System.out.println("----------------------------------------");
}
System.out.println("출력 끝...");
} catch (SQLException ex) {
ex.printStackTrace();
}catch(ClassNotFoundException ex) {
ex.printStackTrace();
}finally {
//6. 종료(사용했던 자원을 모두 반납한다.)
if(rs!=null) try {rs.close();}catch(SQLException ex) {}
if(stmt!=null) try {stmt.close();}catch(SQLException ex) {}
if(conn!=null) try {conn.close();}catch(SQLException ex) {}
}
}
}