package sist;
import java.sql.*;
// Select쿼리 문 작성하여 연동
// 특정 데이터베이스 테이블의 데이터를 가져와서 콘솔창에 출력할 것
public class Select {
public static void main(String[] args) {
Connection con = null; // DB와 연결하는 객체
PreparedStatement pstmt = null; // SQL문을 전송하는 객체
ResultSet rs = null; // SQL 실행 결과를 가지고 있는 객체
// Select쿼리에서만 사용
String url = "jdbc:oracle:thin:@localhost:1521:xe"; // URL 사용
String driver = "oracle.jdbc.driver.OracleDriver";
String user = "web";
String password = "1234";
// 1. 오라클 드라이버 로딩
// ==> 동적으로 로딩 : 프로그램 실행 시에 드라이버를 로딩한다
// 드라이버 파일이 없으면 오류 발생 => 따라서 try catch 문으로 작성
try {
Class.forName(driver);
System.out.println("드라이버 로딩 성공!");
// 2. 데이터베이스와 연결
// 반환형이 Connection형이므로, 위에서 변수선언한 con에 대입
con = DriverManager.getConnection(url, user, password);
if(con != null) {
System.out.println("데이터베이스 연동 성공!");
}
// 3. 데이터베이스에 SQL문을 전송하기 위한 쿼리문 작성
String sql = "select * from memo order by bunho desc";
pstmt = con.prepareStatement(sql); // sql문을 인자로 넣거나
// con.prepareStatement("select * from memo order by bunho desc")
// 이렇게 작성해도 되긴 함.
System.out.println("메모번호\t메모제목\t메모작성자\t메모내용\t메모작성일");
System.out.println("------------------------------------------");
// 4. 데이터베이스 SQL문을 전송
rs = pstmt.executeQuery(); // 실제로 DB에서 SQL문을 실행하는 메소드
// 5. 데이터를 가져와서 출력
// 행의 갯수만큼 반복하여 출력
while(rs.next()) { // rs.next() 은 boolean 타입으로 반환. 커서가 이동하면서 true/false값 반환
int bunho = rs.getInt("bunho"); // 5라는 컬럼명 갖고옴
String title = rs.getString("title"); // 5 컬럼의 타이틀명 가지고 옴
String writer = rs.getString("writer");
String content = rs.getString("content");
String regdate = rs.getString("regdate").substring(0,10);
System.out.println(bunho + "\t" + title + "\t" + writer + "\t" +
content + "\t" + regdate);
System.out.println("------------------------------------------");
}
// 6. 연결되어 있던 객체 종료시키기
rs.close(); pstmt.close(); con.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
결과
드라이버 로딩 성공!
데이터베이스 연동 성공!
메모번호 메모제목 메모작성자 메모내용 메모작성일
------------------------------------------
6 10월 5일 강감찬 jdbc update 2021-10-05
------------------------------------------
5 메모5 이아무개 이아무개님 글 2021-10-05
------------------------------------------
4 메모4 김아무개 김아무개님 글 2021-10-05
------------------------------------------
3 메모3 유관순 유관순님 글 2021-10-05
------------------------------------------
2 메모2 이순신 장군님 글 2021-10-05
------------------------------------------
1 메모1 홍길동 홍길동님 글 2021-10-05
------------------------------------------
'Back-End > JDBC' 카테고리의 다른 글
[JDBC] sql_insert / update 문 예문 (0) | 2021.10.05 |
---|---|
[JDBC] JDBC 프로그래밍 / 드라이버 / url / delete (0) | 2021.10.05 |
댓글