이전 글에서 ActiveJDBC를 다운로드하고 사용하는 방법에 대해 소개하였습니다.
이번 글에서는 ActiveJDBC를 사용하여 SELECT 문을 실행하는 방법에 대해 알아보겠습니다.
1. 다운로드 및 설정은 아래 포스팅 참조
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 문을 실행하는 방법에 대해 알아보았습니다.
'Web Developer's Story > DATABASE' 카테고리의 다른 글
[MYSQL] SQL 문법 정리 - CREATE, DROP 문 (0) | 2020.08.04 |
---|---|
[ActiveJDBC, MySQL] ActiveJDBC 사용법 - INSERT, UPDATE문 (0) | 2020.07.30 |
[ActiveJDBC] ActiveJDBC 다운로드 및 사용법 (0) | 2020.07.27 |
[MYSQL] 데이터베이스 로컬로 덤프 뜨는 방법 (0) | 2020.07.20 |
[ORACLE, MYSQL] LPAD, RPAD 함수 비교 (0) | 2020.07.20 |