티스토리 뷰

WEB TIP/ASP

DKSQL 시작하기

제프 2009. 7. 27. 18:21

출처: http://www.daekiya.pe.kr/


이번 프로젝트에서 Java의 스트러츠, iBatis처럼 SQL과 웹페이지을

분리하고 싶어서 이리저리 돌아다니던중에 좋은 글이 눈에 띠어서~~

샤샤샥~

설명대로 셋팅하고 실제구동을 했는데 아주아주 괜찮네요. ㅎㅎ


DKTools이 아니었다면 삽질의 반복끝에 완성했을것을

감격의 눈물이 ㅜㅜ


1. 초기화 하기


우선 다운받은 파일을 프로젝트에 넣고 사용하고자 하는 곳에 다음과 같이 선언한다.

<!-- #Include Virtual = "/DKTools/DKSimpleQueryLoader/DKUtil.asp" -->
<!-- #Include Virtual = "/DKTools/DKSimpleQueryLoader/DKSimpleQueryLoader.asp" -->


<%

Dim DKSQL
Set DKSQL = New DKSimpleQueryLoader
%>


2. 데이터베이스 등록

다음과 같이 데이터베이스를 등록하도록 한다. UDL 파일을 만드는 방법은 다른 많은 블로그를 참고하기 바란다.

<%
DKSQL.SetUdlFile Server.MapPath("/_lib/classes/dbHelper/admin.udl")
%>


3. 쿼리저장소 등록

SQL 을 모아 둔 XML 그룹 파일을 지정한다. 앞으로 이 파일들은 쿼리저장소라고 부르도록 하겠다.

쿼리저장소는 쿼리의 재사용을 가능하게 해 주는 역할을 하게 된다.

쿼리 저장소는 다음과 같이 추가 하도록 한다.

<%
DKSQL.AddQuery Server.MapPath("/_lib/query/adminMenu.xml")
%>

쿼리저장소 파일은 그룹별로 묶어서 관리 할 수 있으며, 여러개를 추가하여 운용할 수 있다.

쿼리 저장소의 데이터는 xml 형태로 작성 되며, 다음과 같이 구성된다. 우선, DB에 다음과 같은 TABLE이 있다고 가정하겠다.

Table Name : adminMenu

 NAME TypeLength
 menuId varchar 20
 menuName varchar 20
 sortNo int 

그리고 쿼리저장소 파일을 만든다. 이 파일에 adminMenu 를 조작하는 DML 을 담아두었다. 경로는 위에저 지정한 /_lib/query/adminMenu.xml 로 지정한다.

File Name : adminMenu.xml

<query>

<update id="updateAdminMenu">
    update adminMenu set menuName = '#menuName#'
              <isEqual parameter="sortNo" compareValue="0">,sortNo = 0</isEqual>
              <isNotEqual parameter="sortNo" compareValue="0">,sortNo = 1</isNotEqual>
    where <isNotEmpty parameter="menuId">menuId = '#menuId#'</isNotEmpty>
</update>

<insert id="insertAdminMenu">
    insert into adminMenu(menuId, sortNo, menuName)
    values('#menuId#', '#sortNo#', '#menuName#')
</insert>

<delete id="deleteAdminMenu">
    delete from adminMenu where menuId = '#menuId#'
</delete>

<select id="selectAdminMenu">
    select menuId, menuName, sortNo
    from adminMenu
    where 1 = 1 <isNotEmpty parameter="menuId">and menuId = '#menuId#'</isNotEmpty>
</select>

<select id="selectAdminMenuCount">
    select count(*) as cnt
    from (<include refId="selectAdminMenu" />) as a
</select>

</query>


DML 기능 별로 노드를 구성하여 추가한다. 대소문자에 주의하여야 하며, 다음 네가지 노드를 제공한다.

select : SELECT 를 위한 노드
insert : INSERT 를 위한 노드
update : UPDATE 를 위한 노드
delete : DELETE 를 위한 노드


각 노드는 SQL 문장을 포함하고 있으며 제어명령을 통해 데이터를 비교하여 쿼리를 실행할 수 있다.

제어명령에는 다음의 다섯가지가 제공된다.

isEmpty : 지정한 parameter 가 공백이면 실행
isNotEmpty : 지정한 parameter 가 공백이 아니면 실행
isEqual : 지정한 parameter 가 compareValue 와 일치하면 실행
isNotEqual : 지정한 parameter 가 compareValue 와 일치하지 않으면 실행
include : refId 에 지정한 SQL을 삽입한다.


4. DTO(Data Transfer Object) 만들기

DKSQL은 데이터의 관리를 구조적이고 명확히 하기 위해 DTO를 사용한다. DTO란 쉽게 말하자면 데이터를 묶은 그룹이라고 생각하면 된다.

DTO는 위 테이블의 데이터를 담을 것이다. 이 DTO 는 다음과 같이 만든다.

File Name : AdminMenuDto.asp

Public Class AdminMenuDto
    Public MenuId
    Public MenuName
    Public SortNo
End Class


이제 adminMenu Table 의 데이터를 가져와서 조작하기에 필요한 모든 준비를 끝냈다. 그럼 다음 문서에서 실 사용 예를 들어서 각 기능에 대하여 설명해 보도록 하겠다.

'WEB TIP > ASP' 카테고리의 다른 글

DKSQL 활용하기  (0) 2009.07.27
SVN  (0) 2008.11.18
HTML 제거 함수  (0) 2008.11.13
유입경로 함수  (0) 2008.11.13
SQL Injection  (0) 2008.11.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함