ResultSet rs = null
: ResultSet rs은 select 되어진 결과물이 저장되는 곳
String sql = " select no, name, msg, to_char(writeday, 'yyyy-mm-dd hh24:mi:ss') AS writeday "
+ " from tbl_memo"
+ " order by no desc ";
1). OracleDriver
를 메모리에 로딩시켜준다.
2). OracleDriver
객체를 생성해준다.
3). OracleDriver
객체를 DriverManager에 등록시켜준다.
--> DriverManager 는 여러 드라이버들을 Vector 에 저장하여 관리해주는 클래스이다.
Class.forName("oracle.jdbc.driver.OracleDriver");
class.forName("로드할 클래스이름")
-> class의 static 메소드인 forName
은 클래스의 이름을 매개변수로 받아서 Class 객체를 리턴해준다
--> 용도는 컴파일 타임에 직접적인 참조 없이 런타임에 동적으로 클래스를 로드하기 위함
System.out.print("> 연결할 오라클 서버의 IP 주소 : ");
String ip = sc.nextLine();
conn = DriverManager.getConnection("jdbc:oracle:thin:@"+ip+":1521:xe", "JDBC_USER", "gclass");
--> 본인 ip 주소
String sql = " select no, name, msg, to_char(writeday, 'yyyy-mm-dd hh24:mi:ss') AS writeday "
+ " from tbl_memo"
+ " order by no desc ";
pstmt = conn.prepareStatement(sql);
conn.prepareStatement(sql);
이렇게 꼭 해줘야 함rs = pstmt.executeQuery();
--> sql문이 DQL(SELECT)이므로 .executeQuery();
을 사용해야 한다
System.out.println("-".repeat(70));
System.out.println("글번호\t글쓴이\t글내용\t작성일자");
System.out.println("-".repeat(70));
- next() : select 되어진 결과물에서 커서를 다음으로 옮겨주는 것
(리턴타입은 boolean)- first() : select 되어진 결과물에서 커서를 가장 처음으로 옮겨주는 것
(리턴타입은 boolean)- last() : select 되어진 결과물에서 커서를 가장 마지막으로 옮겨주는 것
(리턴타입은 boolean)
getInt(숫자) : 컬럼의 타입이 숫자이면서 정수로 읽어 들일 때 파라미터 숫자는 컬럼의 위치값
getInt(문자) : 컬럼의 타입이 숫자이면서 정수로 읽어 들일 때 파라미터 문자는 컬럼명 또는 alias명
getLong(숫자) : 컬럼의 타입이 숫자이면서 정수로 읽어 들일 때 파라미터 숫자는 컬럼의 위치값
getLong(문자) : 컬럼의 타입이 숫자이면서 정수로 읽어 들일 때 파라미터 문자는 컬럼명 또는 alias명
getFloat(숫자) : 컬럼의 타입이 숫자이면서 실수로 읽어 들일 때 파라미터 숫자는 컬럼의 위치값
getFloat(문자) : 컬럼의 타입이 숫자이면서 실수로 읽어 들일 때 파라미터 문자는 컬럼명 또는 alias명
getDouble(숫자) : 컬럼의 타입이 숫자이면서 실수로 읽어 들일 때 파라미터 숫자는 컬럼의 위치값
getDouble(문자) : 컬럼의 타입이 숫자이면서 실수로 읽어 들일 때 파라미터 문자는 컬럼명 또는 alias명
getString(숫자) : 컬럼의 타입이 문자열로 읽어 들일 때 파라미터 숫자는 컬럼의 위치값
getString(문자) : 컬럼의 타입이 문자열로 읽어 들일 때 파라미터 문자는 컬럼명 또는 alias명
StringBuilder sb = new StringBuilder();
while (rs.next()) {
rs.next()
: select 되어진 결과물에서 위치(행의 위치)를 다음으로 옮긴 후 행이 존재하면 true로 리턴해주고, 행이 없으면 false를 리턴해주는 메소드이다
int no = rs.getInt("no");
✔️ 칼럼명은 no를 쓰고, 대소문자 구분 x
✔️ 또는 int no = rs.getInt("NO") --> "NO"은 SELECT 해온 컬럼명이다
✔️ 또는 int no = rs.getInt(1) --> 1은 select 해 온 컬럼의 위치값으로써 1번째 컬럼을 가리키는 것이다