"트리 메뉴 구성" 의뢰

Posted at 2014. 1. 23. 03:00 | Posted in Request Sample
반응형

Request


아래와 같은 트리 메뉴를 구성할 데이터가 들어있는 테이블이 있습니다.



path 칼럼에 상위 트리의 경로가 "/" 구분자로 들어 있습니다.


예를 들어 id가 7인 노드는 [루트 → 3 → 4 → 7] 의 경로를 가지게 됩니다.


이렇게 데이터가 들어있는 테이블을 조회해서 ul 과 li 태그의 조합으로 화면에 나타내고 싶습니다.


트리 깊이(depth)는 제한이 없습니다.


데이터베이스는 MySQL, 프레임워크는 Spring + iBatis를 사용합니다.




Response


재귀함수/재귀쿼리를 써야 한다.


MySQL 에는 기본적으로 재귀쿼리가 안된단다. -_-;


나 역시도 특정 데이터베이스에서만 있는 문법을 싫어하기 때문에 있어도 안쓸 생각이었다!


단순 select 쿼리로 아래 클래스에 만족하는 계층 클래스 구조를 만들었다.



iBatis는 MyBatis 처럼 <collection>에서 재귀 효과를 낼 수 없기 때문에 다른 곳(Service 영역)에서 이 역할을 해주었다.


아래 그림에서 PathTreeService 클래스의 findChildren() 메소드가 계속 재호출되는 부분이다.



또 이 재귀 부분이 쓰이는 부분은 화면에 <ul>과 <li>를 이용해서 출력하는 부분(JSTL Custom Tag)에서 쓰인다.


PathTreeTag 클래스의 printChildren() 메소드가 계속 재호출 되는 부분이다.



Spring + iBatis + HSQL 을 이용해 만든 샘플이다.


pathtree.war


↑ java 소스 포함 WAR 파일


pathtree.zip


↑ maven 프로젝트


아래와 같은 결과가 나오게 된다.




반응형
//

Eclipse + MyBatis Generator

Posted at 2011. 7. 4. 16:49 | Posted in Tools/Eclipse
반응형
이번 프로젝트는 Spring + MyBatis 입니다.... ㄷㄷ(난 하이버네이트가 더 좋은데 ㅠㅠ)

뭐든 ORM이 마찬가지지만 설정을 열라 해줘야 합니다... 매핑 같은거 ㅠㅠ

하버네이트는 DB 긁어와서 파일 만들어줬는데 마이바티스는 없나.. 해서 찾아보니 역시나 있었습니다.!!

Eclipse Helios 사용.



Installation

이클립스에서 Help -> Install New Software..

사이트 주소 : http://mybatis.googlecode.com/svn/sub-projects/generator/trunk/eclipse/UpdateSite/




Create Config File

이클립스에서 File -> New -> Other 클릭.

플러그인을 정상적으로 설치했으면 아래와 같이 "MyBatis Generator Configuration File" 이 나올겁니다.


저장할 폴더 위치와 파일 이름을 설정합니다.



이제 이 파일을 열어서 편집합니다. 아래는 샘플 입니다. (ㄷㄷㄷ)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration>
	<classPathEntry location="D:\dev\workspace\eclipse\board_v2\WebContent\WEB-INF\lib\mysql-connector-java-5.1.16-bin.jar" />

	<context id="context1">
		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://hostname:3306/db" userId="antop"
			password="xxxxxxxx" />

		<javaModelGenerator targetPackage="kr.nerv.antop.entity.model"
			targetProject="board_v2" />

		<sqlMapGenerator targetPackage="kr.nerv.antop.entity.xml"
			targetProject="board_v2" />

		<javaClientGenerator targetPackage="kr.nerv.antop.entity.mapper"
			targetProject="board_v2" type="XMLMAPPER" />

		<table schema="antop" tableName="ab_board" />
		<table schema="antop" tableName="ab_board_comment" />
		<table schema="antop" tableName="ab_board_file" />	
	</context>
</generatorConfiguration>

모델, XML, 맵퍼 3가지를 생성합니다.

기존 아이바티스 사용하는 방법대로면 모델과 XML 만 있으면 사용 할 수 있을 것 같네요..



Generation

이제 이 설정파일(generatorConfig.xml)에서 마우스 오른쪽 버튼 클릭 후 "Generate MyBatis/iBATIS Artifacts" 클릭!!


파일들이 생성되어 있을 겁니다. ㅎㅎ


이제 진짜 쓸만하게 제대로 만들어 졌는지는 까봐야 알겠죠.. 후...

자기가 잘 쓸만하게 만드려면 설정 파일을 제대로 작성해야 할 듯..



http://code.google.com/p/mybatis/wiki/Generator

http://code.google.com/p/mybatis/source/browse/sub-projects/generator/trunk/core/mybatis-generator-systests-mybatis3/src/main/resources/generatorConfig.xml?r=2403


반응형

'Tools > Eclipse' 카테고리의 다른 글

Eclipse JVM 경로 지정하기  (0) 2016.09.13
Eclipse + SVN Plugin  (1) 2012.03.29
Maven Integration for Eclipse  (0) 2012.02.20
Eclipse + TPTP Remote  (1) 2012.01.20
Eclipse + TPTP (Eclipse Test & Performance Tools Platform)  (4) 2012.01.01
installation Oracle Enterprise Pack for Eclipse  (2) 2011.05.22
Eclipse + STS (SpringSource Tool Suite)  (1) 2011.01.16
Eclipse Plugins for JBoss technology  (1) 2011.01.11
Properties Editor  (1) 2009.11.17
UTF-8 설정  (0) 2009.11.16
//