구분했습니다. 감사합니다 (__ )


리절트셋의 별칭을 줄수 있다는 게.. 참 행복합니다. 
읽어오려는 테이블의 칼럼 명이 아주 그지 같이 길고 복잡할때.. 리절트셋으로 받아와서
간단한 n, s 등으로 접근할 수 있겠네요 (^^ )// (아니면 말고..)

SELECT name n, salary s FROM employee e, department d 
WHERE e.salary > '30000' AND d.department_name = '법무부' AND e.name LIKE('_길_')
ORDER BY e.name ASC

결과의 값은 n , s 란 필드(컬럼명)로서 행,렬 데이터 입니다.

프롬절의 별칭의 경운.. 조건절(where)에서 편하게 쿼리문 만들라고 하는 것이겟죠.. 위에처럼..
+ 테이블 n개 이상 조인시 selete 하려는 칼럼명이 중복될 수 있다. 네임스페이스를 지정하는
느낌이랄까? 뭐 그런듯하다~~ 아 글고 아래 문서에서 보듯.. 디비가 넘겨준 ResultSet을 
row,colomn 별로 접근할땐.. 별칭보단, 인덱스(배열 연산자)로 접근하는게 성능이 더 빠르다는
말이 있다. 글고 일반적으로 컬럼은 내가 원하는 데이터를 지정했을테니.. 조회의 경우
로우(=클래스의 인스턴스를 표현하는 데이터 집합) 단위로 하게 될텐데.. 이경우엔 
컨테이너 인터페이스가 제공하는 .. 반복자~ 이터레이터를 쓰는게 코드가 더 이쁘다. ㅎㅎㅎ

***************************************
(etc)컨테이너 접근 방법에 따른 퍼포먼스
int k = arr.size for(int i=0; i<k, i++ ) 요런 접근과 향상된 포문 for(int i : arr)  접근과 while(it.hasNext)
it.next() 의 퍼포먼스의 경우.. 일반적으론 첫번째가 가장 빠르겠지만, 컴파일러의 최적화를 통해서
3번째 이터레이터 쓰는게 제일 좋다는 문서도 봣었음!


***************************************
리절트셋 명세:

java.sql 
인터페이스 ResultSet

모든 슈퍼 인터페이스:
Wrapper
기존의 서브 인터페이스의 일람:
CachedRowSet , FilteredRowSet , JdbcRowSet , JoinRowSet , RowSet , SyncResolver , WebRowSet

<ins style="font-family: Gulim; font-size:12pt; line-height: normal; display: inline-table; border: none; height: 90px; margin: 0px; padding: 0px; position: relative; visibility: visible; width: 728px;"><ins id="aswift_0_anchor" style="display: block; border: none; height: 90px; margin: 0px; padding: 0px; position: relative; visibility: visible; width: 728px;"></ins></ins>
<pre>public interface ResultSet
extends Wrapper
</pre>

데이타베이스의 결과 세트를 나타내는 데이터의 테이블로, 일반적으로, 데이타베이스에 조회하는 문장을 실행하는 것에 의해 생성됩니다.

ResultSet 객체는, 커서가 데이터의 현재의 행을 지시하도록(듯이) 유지합니다. 초기 상태에서는, 커서는 최초의 행의 선두에 배치됩니다. next 메소드에 의해, 커서는 다음의 행으로 이동합니다. next 는,ResultSet 객체에 그 이상행이 없는 경우에 false 를 돌려주므로,while 루프에 사용해 결과 세트를 반복 처리 할 수가 있습니다.  

디폴트의 ResultSet 객체는 갱신 불가로, 커서는 순서 방향에게만 나아갑니다. 따라서 이 객체는, 최초의 행으로부터 마지막 행으로 향해 1 회만 실행할 수 있습니다. 스크롤 또는 갱신, 혹은 그 양쪽 모두가 가능한 ResultSet 객체를 생성할 수 있습니다. con 가 유효한 Connection 객체인 다음의 코드 fragment는, 스크롤 가능해 외로 행해진 갱신을 반영하지 않는 결과 세트, 및 갱신 가능한 결과 세트의 작성 방법을 나타내고 있습니다. 다른 옵션에 대해서는,ResultSet 의 필드를 참조해 주세요.

Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");// rs will be scrollable, will not show changes made by others,// and will be updatable 
아래 java 도큐의 resultset 명세중.. '렬명' 이 alias(별칭) 과 동일한 의미.
ResultSet 인터페이스는, 현재의 행으로부터 렬치를 취득하는 getter 메소드 (getBoolean,getLong 등)를 제공합니다. 값은, 열의 인덱스 번호나 렬명의 어느 쪽인지를 사용해 취득할 수 있습니다. 일반적으로은 열인덱스를 사용하는 (분)편이 효과적입니다. 열은 1 으로부터 순서에 번호 붙이고 됩니다. 이식성을 최대한으로 꺼내기 (위해)때문에, 각 행내의 결과 세트의 열은 왼쪽에서 오른쪽의 순서에 읽혀 각 행은 1 회만 읽히도록(듯이) 합니다.

getter 메소드에서는, JDBC 드라이버가 기본적인 데이터를 getter 메소드로 지정된 Java 형으로 변환해, 적절한 Java 의 값을 돌려줍니다. JDBC 스펙에는,ResultSet getter 메소드로 가능한 SQL 형으로부터 Java 형에의 매핑을 나타내는 테이블이 있습니다.  

getter 메소드에의 입력으로서 사용되는 렬명에서는, 대문자와 소문자는 구별되지 않습니다. 렬명으로 getter 메소드가 불려 가 복수의 열이 같은 이름을 가지는 경우는, 최초로 일치하는 열의 값이 돌려주어집니다. 렬명의 옵션은, 결과 세트로 생성되는 SQL 쿼리로 렬명이 사용되는 경우에 사용되도록(듯이) 설계되고 있습니다. 쿼리로 명시적으로 명명되지 않는 열의 경우에는, 열번호를 사용하는 것이 가장 좋은 방법입니다. 렬명을 사용하는 경우, 프로그래머는 목적의 열을 일의에 가리키는 것을 보증하도록 주의해 주세요. 이것은, SQL AS 절을 사용해 실현될 수 있습니다


by givingsheart 2014. 1. 2. 09:02