728x90
반응형
JDBC 프로그래밍 개발 단계
1. 데이터베이스 연동을 위한 jdbc driver loading
2. Connection
3. SQL 정의 후, PreparedStatement 생성
4. SQL 실행 executeQuery()
5. ResultSet : next(): boolean | getString() or getInt()
6. close
Oracle DB와 연동하는 자바 어플리케이션 테스트
SELECT 구문을 실행해 결과를 조회하여 출력하는 예제
package step1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TestJDBC1 {
public static void main(String[] args) {
String driver = "oracle.jdbc.OracleDriver";
String dbUrl = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
try {
//1. 데이터베이스 연동을 위한 jdbc driver loading
Class.forName(driver);
System.out.println("Oracle Driver loading OK ! ");
//2. Connection
Connection con = DriverManager.getConnection(dbUrl, "scott", "tiger");
System.out.println("DB Connecting OK! --> " + con);
//3. SQL 정의 후, PreparedStatement 생성
String sql = "SELECT id, password, name, address FROM member";
PreparedStatement pstmp = con.prepareStatement(sql);
//4. SQL 실행 executeQuery()
ResultSet rs = pstmp.executeQuery();
//5. ResultSet : next(): boolean | getString() or getInt()
while(rs.next()) { //next(): 한 행씩 읽어옴 - 결과행이 있을때까지 반환
// SQL의 column의 인덱스는 1부터 읽는다
String id = rs.getString(1); //getString(column index or column name)
String password = rs.getString(2); // 두번쨰 컬럼 = password
String name = rs.getString(3);
String address = rs.getString(4);
System.out.println(id + " " + password + " " + name + " " + address);
/* 출력값 :
* java 1234 아이유 판교
* king 1232 데이빗 용인
* mybatis di 스톤 LA
* A 1313 옹성우 null
* spring aop 고슬링 LA
*/
}
//6. close : 역순으로 close
rs.close();
pstmp.close();
con.close();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}
SELECT 조회 시 조건절 WHERE 을 이용해 조회
package step2;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TestJDBC2 {
public static void main(String[] args) {
String driver = "oracle.jdbc.OracleDriver";
String dbUrl = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
try {
//1. jdbc driver loading
Class.forName(driver);
//2. Connection
Connection con = DriverManager.getConnection(dbUrl, "scott", "tiger");
//3. SQL문 정의 - WHERE 조건 추가
String address = "LA";
String name = "스톤";
String sql = "SELECT id, name FROM member WHERE address=? AND name=?";
//4. PreparedStatement 생성
PreparedStatement pstmt = con.prepareStatement(sql);
//5. SQL문 완성 - WHERE 조건에 변수 할당
// 1은 첫번째 물음표를 의미한다. ? 에 변수정보 할당
pstmt.setNString(1, address);
pstmt.setNString(2, name);
//6. SQL 실행 executeQuery() 및 ResultSet에 할당
ResultSet rs = pstmt.executeQuery();
//7. 읽어오기
while(rs.next()) {
//getString(column index) or getString(ColumnLabel)
System.out.println(rs.getString(1) + " " + rs.getString(2));
System.out.println(rs.getString("ID") + " " + rs.getString("NAME"));
/* 출력값:
* mybatis 스톤
* mybatis 스톤
*/
}
//8. close
rs.close();
pstmt.close();
con.close();
}catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
728x90
반응형