일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 리눅스 명령어
- 리눅스에서 이클립스설치
- jdbc
- CP
- ResultSet
- mkdir
- rs.next
- Class.forName
- DriverManager
- mv
- query
- 압축풀기명령어
- connection
- Touch
- RM
- Statement
- Today
- Total
coramDeo
JDBC 프로그램 작성단계-2 (Statement , Query, Resultset) 본문
앞서 작성한 포스트는 연결부분으로 ConnectionManager. 클래스에서 따로 분리해서 했다면,
이번 Statement객체 생성 부터는 DAO. 클래스의메소드에서 시작합니다.
이유는 중복되는 connect부분만 ConnectionManager로 뺐기 때문에, 중복되지 않는 부분들은 DAO에 각각 메소드에서 사용하게되며
우리가 실행시키려는 쿼리문에 따라 사용하는 객체들이 달라지게됩니다.
3단계 Statement객체생성
SQL쿼리를 생성하며 반환된 결과를 가져오게 할 작업 영역을 제공합니다.
*Statement 객체
Connection 객체의 creatStatement()메소드를 사용하여 생성합니다.
//Statement 객체 외에도 preparedStatement와 CallableStatement 를 사용할 수 있는데,
저는 Statement 객체를 이용했습니다.
Connection con에 ConnectionManager에 있는 getConnection 메소드를 불러옵니다.
지난 포스트에 썼던 긴과정이 DAO에서는 두줄로 끝이 납니다.
이 작업은 jsp와 DB를 연결한 후, 쿼리문을 보낼 수 있도록 통로를 생성하는 것입니다.
4단계 Query수행
//쿼리수행
String sql = "select,insert,delete,update문";
이제 보낼 쿼리를 작성합니다.
쿼리는 테이블에서 이용하는 질의어와 동일하게 작성하고 원하는 값에 따라
select(전체조회/부분조회),insert(추가),update(수정),delete(삭제)문을이용해 값을 받아오거나, 추가하거나,
수정또는 삭제 할 수 있습니다.
5단계 Resultset처리
제가 사용한 excuteQuery()메소드는 수행결과로 테이블 레코드들을 반환하기 때문에 (조회하는 Select문이기 때문)
Resultset rs에 담습니다.
*질의어의 따라 메소드가 두가지로 나뉩니다.
SELECT문일경우 -- recodeSet을 반환하는 stmt.excuteQuery()메소드를 사용합니다.
INSERT,UPDATE,DELETE문일 경우 -- 성공한 row수를 반환하는 stmt.executeUpdate()메소드를 사용합니다.
<데이터를 추출하기>
*rs.next()
- rs에서 한 레코드씩 값이 없을때까지 뽑는다는 말입니다.
-Resultset 객체에서 한 행씩 이동하며 get---()메소드를 통해 원하는 필드 값을 추출한다.
(---부분은 String이 될수도있고 다른 것이 될 수 도 있지만 대부분 String을 쓴다.)
*rs.getString()으로 원하는 필드 값을 불러올때는 두가지 방법
i) rs.getString(1)
필드의 순서대로, 첫번째를 불러오는 것이다. 만약 첫컬럼이 id 였다면 id값을 불러온다.
(자바 계열에서 Resultset의 첫번째 필드는 1부터 시작한다.)
ii)rs.getString("id")
필드명을 사용해서 바로 원하는 필드를 불러온다.
*필드와 컬럼은 같은 말입니다!
*원래는 vo 객체를 만들어서 vo객체에 결과 값을 한 행씩 담아 완성하지만, 여기서 vo를 만드는 것을 설명하지 않았으므로, String temp에 담았다. 출력하면 원하는 값을 볼 수 있다.
데이터 추출 까지 알아보았습니다.
수고하셨습니다.
'JSP' 카테고리의 다른 글
JDBC 프로그램의 작성단계 -3(Close) (0) | 2018.04.27 |
---|---|
JDBC 프로그램 작성 단계 -1(DriverManager,Connection) (0) | 2018.04.27 |