취소

커뮤니티

가이드

서포트

전체

<p><p><p>퍼갈 때에는 반드시 저작자의 허락과 저작자의 이름(아이디)를 기록하어야 합니다.</p>

저작자는 Snails(tjdtnsu)입니다.

제발 덧글 좀 적어주세요. 강의 적는 시간은 1시간이지만 덧글은 1분도 걸리지 않습니다.

참고 : 이 강좌는 초보자를 위한 Eclipse를 사용하였습니다.

올리는 곳 : 제 네이버 블로그, 디벨로이드 카페

업로드 시간 : 매달 2,4주 오후 11시

 난이도 : ★★★★★★★★



 

지난번 시간에 이어서 계속 하겠습니다

오늘은 원래 2구문 하려 했는데, 1구문만 하고 끝내겠습니다

 

 

private void executeRawQueryParam2() {

        println("\nexecuteRawQueryParam2 called.\n");

  

        String[] columns = {"name", "age", "phone"};

        String whereStr = "where age > ?";

        String[] whereParams = {"30"};

        Cursor c1 = db.query(TABLE_NAME, columns,

                whereStr, whereParams,

                null, null, null);

  

        int recordCount = c1.getCount();

        println("cursor count : " + recordCount + "\n");

  

        for (int i = 0; i < recordCount; i++) {

            c1.moveToNext();

            String name = c1.getString(0);

            int age = c1.getInt(1);

            String phone = c1.getString(2);

  

            println("Record #" + i + " : " + name + ", " + age + ", " + phone);

        }

  

        c1.close();

  

    }

 

 

5개 줄만 해석 하겠습니다

원래 많이 있었는데, 어디로 빠져나갔는지는 비밀

 

일단 이구문이 하는 일은?

query() 메소드를 호출하는 기능을 합니다

 

전 복잡한 걸 너무너무 싫어하므로 간단히 하겠습니다.

 

 

 

Cursor c1 = db.query(TABLE_NAME, columns,

                whereStr, whereParams,

                null, null, null);

이 부분은 query() 메소드를 해석하는 부분입니다. query()이 적혀있는데, 그 부분이고

그 안에 뭔가 적혀있는 것은 입력을 주는 겁니다(C언어와 비슷)

 

 

 

 

int recordCount = c1.getCount(); 

여기는 커서의 getCount() 메소드를 이용해 레코드 개수를 확인하는 부분입니다

getCount()는 외워두시면 됩니다.

 

 

 

 

c1.moveToNext();

c1을 다음 레코드로 이동시키는 부분입니다.

물론 이게 없으면 큰일이 나겠지요

아, 그리고 이 부분이 없으면 계속 덮어쓰다가

하나의 레코드에 마지막값만 넣어놓고 끝납니다.

 

 

 

String name = c1.getString(0);

name에 c1의 첫번째 문자열을 확인하는 부분입니다.

0이 첫번째 다시 말해서 a[0]같은 겁니다.

그 밑도 두번째 정수값, 세번째는 문자열을 불러드립니다.

 

println("Record #" + i + " : " + name + ", " + age + ", " + phone);

도 중요한데, 쉽습니다. 레코드를 입력했다고 출력을 해주는 겁니다.

출력값은 Run해 보시면 상태 부분에서 잘 나오므로 참고하시면 되겠습니다.

 

 

 

 

 c1.close();

이 부분은 모든 레코드 출력이 끝나면 커서를 닫는 내용입니다

닫지 않으면 어떤 일이 생길지 몰라요(별 일이 없을수도 있습니다.)

 

 

 

 

이걸로 분석이 끝났습니다

이건 고급 과정이므로 이해가 되지 않는게 당연합니다

다시 한번 말하지만 JAVA를 하시고 여기 들어오시는게 쉽습니다.

 

거기에 SQL 구문도 잘 이해해야만 하므로

끝내고 싶었지만....

 

직접 예제를 만들어 보고 끝내겠습니다.(여기서 끝내면 절대 못 만듭니다.)

그 뒤에는 연습문제를 풀어보도록 하겠습니다(3개로 예상중입니다)



</p>