반응형

이전 글에서 ActiveJDBC를 다운로드하고 사용하는 방법에 대해 소개하였습니다.

이번 글에서는 ActiveJDBC를 사용하여 SELECT 문을 실행하는 방법에 대해 알아보겠습니다.

 


 

1. 다운로드 및 설정은 아래 포스팅 참조

ActiveJDBC 다운로드 및 사용법 바로가기

 

 

2. ActiveJDBC를 이용하여 데이터베이스 사용하기

1번 글에서 만들었던 Notice 클래스를 이용하여 예시 코드를 작성해보겠습니다.

 

 

3. SELECT 문

import app.model.Notice;
import org.javalite.activejdbc.Base;
import java.util.List;

.
.
.

String title = "";

try{

        Base.open("java:comp/env/jdbc/mysql");

        List<Notice> list = Notice.where("deleted = 0 and title is not null").orderBy("id desc");;
        
        for( Notice n : list ){
            title = n.getString("title")==null?"":n.getString("title");
            .
            .
            .        
        }
        
}catch (Exception e){
	System.out.print(e);

}finally {
	Base.close();
}
        

 

- Base를 import하여 오픈해주어야 사용할 수 있습니다.

- open을 하였으니 finally 에서 close를 꼭 해주어야 합니다.

 

- 위 코드를 보면 Notice 모델에서 where 메소드orderBy 메소드를 불러 쿼리를 실행시켰습니다.

- deleted 컬럼 값이 0이고, title 컬럼 값이 null이 아닌 모든 데이터를 id 역순으로 select 했습니다.

- 그리고 그 쿼리 값을 List에 담아 for문으로 데이터들을 출력합니다.

 

- where, orderBy가 아닌 다른 방법으로 쿼리를 실행할 수 있습니다.

- 위의 코드와 같은 결과를 나타내는 소스입니다.

List<Notice> = Notice.findBySQL("select * from notices where deleted = 0 and title is not null order by id desc");

 

- 이처럼 where, orderBy 메소드 대신 findBySQL메소드를 사용하여 전체 쿼리를 입력하는 방법도 있습니다.

 

- 만약 하나의 데이터만 출력하고 싶다면, findFirst 메소드를 사용하면 됩니다.

int id = 12;
String title = "";

Notice n = Notice.findFirst("id = ?", id);

if( n != null ) {
    title = n.getString("title")==null?"":n.getString("title");
    .
    .
    .
}

 

- id가 12인 데이터만 n에 저장됩니다.

- if문을 사용하여 결과 값이 있는지 확인한 후 데이터를 받아옵니다.

 

 

 

이상으로 ActiveJDBC를 사용하여 SELECT 문을 실행하는 방법에 대해 알아보았습니다.

 


 

반응형