<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>matz님의 이글루</title>
	<link>http://matz.egloos.com</link>
	<description>왜라고 묻기전에 왜그런지 찾아보는 人...</description>
	<language>ko</language>
	<pubDate>Sat, 10 Oct 2009 13:39:35 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>matz님의 이글루</title>
		<url>http://pds12.egloos.com/logo/200810/27/57/f0076557.jpg</url>
		<link>http://matz.egloos.com</link>
		<width>80</width>
		<height>107</height>
		<description>왜라고 묻기전에 왜그런지 찾아보는 人...</description>
	</image>
  	<item>
		<title><![CDATA[ jstl 적용 문제~ ]]> </title>
		<link>http://matz.egloos.com/1646436</link>
		<guid>http://matz.egloos.com/1646436</guid>
		<description>
			<![CDATA[ 
  jstl 사용시<br>According to TLD or attribute directive in tag file, attribute test does not accept any expressions<br>에러가 날때가 있었다...<br>&lt;%@ taglib uri="<a href="http://java.sun.com/jstl/core">http://java.sun.com/jstl/core</a>" prefix="c" %&gt;<br>선언부분을<br>이렇게 바꿔주면 에러가 발생안한다.<br>&lt;%@ taglib uri="<a href="http://java.sun.com/jstl/core_rt">http://java.sun.com/jstl/core_rt</a>" prefix="c" %&gt;<br>EL 사용시<br>&lt;%@ page isELIgnored="false" %&gt;<br>요렇게 선언하면 EL도 사용가능<br>commons-el.jar 파일도 포함해야 한다.<br>			 ]]> 
		</description>
		<category>jsp</category>

		<comments>http://matz.egloos.com/1646436#comments</comments>
		<pubDate>Sat, 10 Oct 2009 13:39:35 GMT</pubDate>
		<dc:creator>matz</dc:creator>
	</item>
	<item>
		<title><![CDATA[ [JSTL] 페이징 게시판 순번 지정하기 ]]> </title>
		<link>http://matz.egloos.com/1645825</link>
		<guid>http://matz.egloos.com/1645825</guid>
		<description>
			<![CDATA[ 
  <div class="post-view pcol2" id="post-view"><p>int totalRecord = 0;&nbsp; //전체 레코드 수<br>int numPerPage = 5; //블럭당 페이지 수 <br>int pagePerBlock = 10;//기본값은 10 페이지블럭수<br>int beginPerPage = 0;&nbsp; //페이지의 시작레코드번호</p><p>int nowPage=1; //현재 페이지번호</p><p>&nbsp;</p><p>beginPerPage = (nowPage-1) * numPerPage;</p><p>pageContext.setAttribute("list",list);</p><p>pageContext.setAttribute("articleNum",new Integer(totalRecord-beginPerPage));</p><p>&nbsp;</p><p>&lt;c:forEach var="list" items="${list}" varStatus="status"&gt;</p><p>&lt;c:out value="${articleNum-status.index}"/&gt;</p><p>&lt;/c:forEach&gt;<div class="autosourcing-stub"><p style="PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; FONT-WEIGHT: normal; FONT-SIZE: 12px; PADDING-BOTTOM: 0pt; MARGIN: 11px 0pt 7px; PADDING-TOP: 0pt; FONT-STYLE: normal; FONT-FAMILY: Dotum"><strong style="PADDING-RIGHT: 7px; PADDING-LEFT: 0pt; PADDING-BOTTOM: 0pt; PADDING-TOP: 0pt">[출처]</strong> <a href="http://blog.naver.com/ndarkness75/100051458493" target="_blank">[JSTL] 페이징 게시판 순번 지정하기</a><span style="PADDING-RIGHT: 7px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0pt; PADDING-TOP: 0pt">|</span><strong style="PADDING-RIGHT: 7px; PADDING-LEFT: 0pt; PADDING-BOTTOM: 0pt; PADDING-TOP: 0pt">작성자</strong> <a href="http://blog.naver.com/ndarkness75" target="_blank">샹그릴라</a></p></div><p></p></div>			 ]]> 
		</description>

		<comments>http://matz.egloos.com/1645825#comments</comments>
		<pubDate>Fri, 09 Oct 2009 23:32:14 GMT</pubDate>
		<dc:creator>matz</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 문서에 붙은 ^M 삭제 ]]> </title>
		<link>http://matz.egloos.com/1451367</link>
		<guid>http://matz.egloos.com/1451367</guid>
		<description>
			<![CDATA[ 
  <strong>from KLTP. /<br>from Feel so good -weblog <br>(</strong><a href="http://lightyellow.postech.ac.kr/~noh9pil/wordpress"><strong>http://lightyellow.postech.ac.kr/~noh9pil/wordpress</strong></a><strong>) /<br><br></strong>vi(m)을 사용하다보면 윈도우즈에서 작업한 텍스트 파일에 ^M 문자가 붙는 경우를 종종 봅니다.<br>현재 vim에서는 도스 문서로 문서를 읽게 되면 이 문자가 붙지 않기도 하지만<br>종종 이 문자 때문에 문서 보기가 상당히 귀찮아 보일 때가 있습니다.<br>특히, SQL 백업 파일을 볼 때 이 문자가 붙기도 하는데 특정한 내용을 볼 때<br>이런 문자가 붙은 것을 보기는 상당히 힘들죠.<br>(sun의 파일을 aix에서 받을 때에도 이런 문제가 발생한다고 합니다)<br>이 문자는 M은 +M이 아니라 Control+v+m 입니다. 따라서, 다음에 이 문자를 없앨 때도<br>이렇게 타이핑을 하도록 합니다.<br><br>다음은 http://www.lug.or.kr/에 올라온 몇 개의 팁을 참조하여 정리한 것입니다.<br>생각보다 많은 방법들이 있을 수 있겠군요.<br><br>1. vi(m)이 열린 상태<br>1.1 문자 치환 명령 이용<br>다음과 같이 문자 치환 명령으로 이 문자를 없애도록 합니다.<br><strong>:1,$s/^M//g</strong><br><br>물론 이것의 입력은 다음과 같이 하도록 합니다.<br><strong>:1,$s/[Control]+v+m을 누른다.//g</strong><br><br>1.2 파일포맷 변경<br>vim 5.0 이상에서는 다음과 같이 명령을 내리도록 합니다<br><br><strong>:set fileformat=unix</strong><br>혹은<br><strong>:set ff=unix</strong><br>그리고, 저장하고 종료합니다.<br>:wq<br><br>이와 반대로 끝에 ^M붙이려면 다음과 같이 합니다.<br><strong>:set fileformat=dos</strong><br><br>이전버전에서는 다음과 같이 합니다.<br><strong>:set textmode</strong><br><br>1. 프롬프트 상에서<br>2.1 dos2unix 이용<br>dos2unix와 unix2dos를 이용하여 변환할 수 있습니다.<br><br>다음과 같이 하면 ^M 문자가 없어집니다.<br><strong>$ dos2unix 문서명</strong><br><br>그리고 다음과 같이 하면 ^M 문자가 생기죠.<br><strong>$ unix2dos [문서명]</strong><br><br>2.2 cat과 tr을 이용한 방법<br>다음과 같이 하면 해당 파일의 ^M 문자가 없어집니다.<br><strong>$ cat dos-file | tr d ^M &gt; unixfile</strong><br><br>2.3 perl 스크립트<br>다음과 같이 하면 여러파일을 한번에 바꾸게 됩니다.<br><br><strong>$ perl -i -pe ’s/</strong>			 ]]> 
		</description>
		<category>리눅스</category>

		<comments>http://matz.egloos.com/1451367#comments</comments>
		<pubDate>Fri, 17 Apr 2009 03:07:20 GMT</pubDate>
		<dc:creator>matz</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 리눅스 자주사용되는 명령어들 ]]> </title>
		<link>http://matz.egloos.com/1450055</link>
		<guid>http://matz.egloos.com/1450055</guid>
		<description>
			<![CDATA[ 
  <p>man [명령어]<br><br><strong>1. 파일 리스트 보기 및 이동</strong></p><p>ls, cd<br><br><strong>2. 파일 검색</strong></p><p>find, whereis<br><br><strong>3. 파일 조작</strong></p><p>mv, cp, rm, chown, chgrp, lsmod, chmod, lsattr, chattr, file, tar, jar, gzip, unzip, ln<br><br><strong>4. 파일 내용 검색, 처리, 수정</strong></p><p>cat, tail, head, grep, sed, vi, diff, tr<br><br><strong>5. HDD 관리</strong></p><p>fdisk, fsck, df, du, mkfs, mount, quota<br><br><strong>6. 프로세스 관리</strong></p><p>pstree, ps, lsof, fuser, top, kill, fg, bg, job, free <br><br><strong>7. 네트웍 관리</strong></p><p>netstat, iptable, w, users, who<br><br><strong>8. 작업내역보기</strong></p><p>history</p><p><strong>9. 시스템 관리</strong></p><p>shutdown, halt, init, login, logout, reboot, setup, ulimit, umask</p><p><strong>10. 사용자관리</strong></p><p>useradd, userdel, passwd</p><p><strong>11. 예약작업</strong></p><p>crontab, at</p>			 ]]> 
		</description>
		<category>리눅스</category>

		<comments>http://matz.egloos.com/1450055#comments</comments>
		<pubDate>Thu, 16 Apr 2009 02:16:34 GMT</pubDate>
		<dc:creator>matz</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 디렉토리별 용량 확인 ]]> </title>
		<link>http://matz.egloos.com/1450053</link>
		<guid>http://matz.egloos.com/1450053</guid>
		<description>
			<![CDATA[ 
  폴더의 용량을 체크할때 du 라는 명령을 사용하실겁니다.<br><br>du -sh 폴더명 머 이렇게들 사용하지요<br><br>이렇게 하나하나 체크하기 보다는 한꺼번에 폴더별 용량을 확인 하고 싶어서 찾아보니깐 방법이 있더라구요 ^^<br><br>명령어 : du -h --max-depth=1<br><br>출력 <br>12K&nbsp;&nbsp;&nbsp;&nbsp; ./.lftp<br>8.0K&nbsp;&nbsp;&nbsp; ./.gnome2<br>14M&nbsp;&nbsp;&nbsp;&nbsp; ./www_photo<br>91M&nbsp;&nbsp;&nbsp;&nbsp; ./www<br>11M&nbsp;&nbsp;&nbsp;&nbsp; ./util<br>8.7M&nbsp;&nbsp;&nbsp; ./whdd<br>84K&nbsp;&nbsp;&nbsp;&nbsp; ./modsecurity_080929<br>125M&nbsp;&nbsp;&nbsp; .<br><br>-h 옵션은 사람이 볼때 보기좋게 표시해주는 옵션이고<br><br>--max-depth 옵션은 폴더의 깊이를&nbsp;선택해주는 옵션이라고 합니다.<br><br>폴더의 깊이라고 하니깐 잘 이해가 안가서 실제로 해보니깐 먼말인지 알겟더라고요 <br><br><br>명령어 : du -h --max-depth=2<br><br>출력 <br>3.1M&nbsp;&nbsp;&nbsp; ./util/eyeOS<br>3.4M&nbsp;&nbsp;&nbsp; ./util/scanner<br>1.7M&nbsp;&nbsp;&nbsp; ./util/bench<br>11M&nbsp;&nbsp;&nbsp;&nbsp; ./util<br>20K&nbsp;&nbsp;&nbsp;&nbsp; ./whdd/files<br>7.6M&nbsp;&nbsp;&nbsp; ./whdd/client<br>416K&nbsp;&nbsp;&nbsp; ./whdd/plugins<br>636K&nbsp;&nbsp;&nbsp; ./whdd/server<br>8.7M&nbsp;&nbsp;&nbsp; ./whdd<br>84K&nbsp;&nbsp;&nbsp;&nbsp; ./modsecurity_080929<br>125M&nbsp;&nbsp;&nbsp; .			 ]]> 
		</description>
		<category>리눅스</category>

		<comments>http://matz.egloos.com/1450053#comments</comments>
		<pubDate>Thu, 16 Apr 2009 02:14:07 GMT</pubDate>
		<dc:creator>matz</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 콘솔에서 확인가능한 네트워크명령어(간단히 정리) ]]> </title>
		<link>http://matz.egloos.com/1450049</link>
		<guid>http://matz.egloos.com/1450049</guid>
		<description>
			<![CDATA[ 
  <p>cmd 창에서 간단하게 네트웍 상태를 확인 할수 있는 명령어가 정리했습니다. <br><br>호스트명 보기 : hostname<br><br>아이피 보기: ipconfig /all<br><br>네트워크상 태보기 : netstat -an&nbsp; - 전체상태보기<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; netstat -anP tcp&nbsp; - tcp상태만보기<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; netstat -anP udp&nbsp; - udp상태만보기<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;netstat -an 2&nbsp; - 2초간격으로 네트웍상태 출력</p><p>라우팅정보보기 : route print<br><br>호스트정보 : net view<br><br>MAC 주소 : arp -a</p>			 ]]> 
		</description>
		<category>서버</category>

		<comments>http://matz.egloos.com/1450049#comments</comments>
		<pubDate>Thu, 16 Apr 2009 02:11:08 GMT</pubDate>
		<dc:creator>matz</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 원격(CMD창)에서 터미널 세션 끊기 ]]> </title>
		<link>http://matz.egloos.com/1450048</link>
		<guid>http://matz.egloos.com/1450048</guid>
		<description>
			<![CDATA[ 
  <p>139 , 445 포트가 열려있어야함 </p><p>0. 터미널 서비스 원격으로 끊기 준비물 <br>&nbsp; - 세션 끊으려는 서버의 IP <br>&nbsp; - 세션 끊으려는 서버의 id/password <br>&nbsp; - 윈도2000서버 이상 추천 (윈도프로페셔널에는 tsdiscon명령어가 없으나, <br>&nbsp;&nbsp;&nbsp; 자료실 다운받은후 프로에서 작업가능, tsdiscon은 윈도2000서버이상에만 있는 명령어) </p><p>1. 시작 -&gt; 실행 cmd 창에서 아래를 입력 <br>&nbsp; net use <a href="file://211.189.x.x/">\\211.189.x.x</a> (IP) /user:admin(어드민 권한 사용자아이디) * (*는 암호 입력하겠다는뜻임) <br>&nbsp; <a href="file://211.189.x.x/">\\211.189.x.x</a>에대한 암호를 입력하십시오 : **** (패스워드 입력) </p><p>2. 여전히 cmd창에서 <br>&nbsp; query user /server:211.189.x.x <br>&nbsp; 사용자이름&nbsp;&nbsp; 세션이름&nbsp; id&nbsp;&nbsp;&nbsp; 상태&nbsp; 유휴시간&nbsp; 로그온시간 <br>&nbsp; console&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; 활성&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10:10:00 <br>&nbsp; admin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp; 활성&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10:10:00 <br>&nbsp; admin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp; 활성&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10:10:00 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^^^^ &lt;------- id확인 <br>&nbsp; * query 는 윈도 프로에는 없는 명령어임..id는 그냥 0,1,2니까 그냥 끊는거면 1,2 끊어리면 됨.. </p><p>3. id를 확인후 - 콘솔이 0번, 터미널이 1, 2번 사용 <br>4. 여전히 cmd창에서 <br>&nbsp; tsdiscon 1 /server:211.189.x.x <br>&nbsp; 하면은 해당 터미널 접속세션 끊김 </p><p>&nbsp; * 그냥 tsdiscon하면은 local 터미널 접속세션이 끊김 </p>			 ]]> 
		</description>
		<category>서버</category>

		<comments>http://matz.egloos.com/1450048#comments</comments>
		<pubDate>Thu, 16 Apr 2009 02:09:13 GMT</pubDate>
		<dc:creator>matz</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 아이바티스 적용방법 ]]> </title>
		<link>http://matz.egloos.com/1446256</link>
		<guid>http://matz.egloos.com/1446256</guid>
		<description>
			<![CDATA[ 
  <p>일단 IBATIS 프레임워크를 다운로드 받자. <a class="con_link" href="http://ibatis.apache.org/javadownloads.cgi" target="_blank">http://ibatis.apache.org/javadownloads.cgi</a>&nbsp;나는 </p><p>iBATIS Java 2.2.0 Binaries, Source and DocumentationiBATIS Java 2.2.0 Binaries, Source and Documentation 를 다운받았다. 압축을 풀고 lib 폴더에 가면</p><p>ibatis-dao-2.jar<br>ibatis-sqlmap-2.jar<br>ibatis-common-2.jar</p><p>이렇게 3개의 jar 파일이 존재한다. 이 3개의 jar 파일을 $CATALINA_HOME$/common/lib 안에 넣어서 톰캣이 실행시 참조할수 있게 한다. </p><p>IBATIS를 돌리기 위해서는 SQL 설정파일, 그리고 실제 SQL문이 들어가있는 설정파일인 XML파일이 필요하다. 먼저 SQL 설정파일을 만들어보자.</p><p>&nbsp;</p><p>* sql-map-config.xml&nbsp;</p><p>&lt;?xml version="1.0" encoding="euc-kr" ?&gt;</p><p>&lt;!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>"<a class="con_link" href="http://ibatis.apache.org/dtd/sql-map-config-2.dtd" target="_blank">http://ibatis.apache.org/dtd/sql-map-config-2.dtd</a>"&gt;</p><p>&nbsp;</p><p>&lt;sqlMapConfig&gt;</p><p><span style="COLOR: #ff0000">&lt;!-- &lt;sqlMap resource&gt; 의 .xml파일에서 정의한 &lt;sqlMap namespace&gt; 속성을 적용하여 호출할것인지의 유무&nbsp;만약 true로 설정하였다면 namespace.statementID 로 호출해야한다.<br>--&gt;<br></span>&lt;settings <span style="COLOR: #ff0000">useStatementNamespaces</span>="true"/&gt;</p><p><span style="COLOR: #ff0000">&lt;!-- 실제 &lt;insert&gt;&lt;update&gt;&lt;delete&gt;의 pameterClass와 resultClass에서 쓰일 클래스의 별칭--&gt;</span></p><p>&lt;typeAlias alias="String" &nbsp;&nbsp;type="java.lang.String"/&gt;<br>&lt;typeAlias alias="resultMap" &nbsp;&nbsp;type="java.util.HashMap"/&gt;<br>&lt;typeAlias alias="paramsMap" &nbsp;type="java.util.HashMap"/&gt;</p><p>&nbsp;</p><p>&lt;!-- 기본적으로 autoCommit인 상태이다.</p><p>commitRequired 이 true이면 SELECT 까지도 커밋한다는 뜻이다. --&gt;<br>&lt;transactionManager type="JDBC" commitRequired="false"&gt;&nbsp;&nbsp;</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dataSource type="JNDI"&gt;&lt;!-- <span style="COLOR: #ff0000">등록된 JNDI를 찾아서 쓰겠다는 뜻이다.--&gt;<br></span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;property name="DataSource" value="java:comp/env/jdbc/sang"/&gt;<br>&nbsp;&lt;/dataSource&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&lt;/transactionManager&gt;</p><p>&nbsp;</p><p>&lt;!-- 실제 사용되어지는 SQL문장이 있는 XML 파일</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;여기서 중요한건 resource의 경로가 클래스경로라는 점이다.</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 나는 testIbatis.xml 파일이 /WEB-INF/classes/com/ibatis/test/testIbatis.xml 에 위치했다.</p><p>--&gt;</p><p>&nbsp; &lt;sqlMap resource="com/ibatis/test/testIbatis.xml"/&nbsp;&gt;</p><p>&nbsp; &lt;sqlMap resource="com/ibatis/test/test2Ibatis.xml"/&nbsp;&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .</p><p>&lt;/sqlMapConfig&gt;</p><p>&nbsp;</p><p>&nbsp;</p><p>실제 sql 문장이 들어가 있는 xml 여기에 대한 설명은 너무 많아서 매뉴얼을 참조하길 바란다.</p><p>* testIbatis.xml </p><p>&lt;?xml version="1.0" encoding="UTF-8" ?&gt;</p><p>&lt;!DOCTYPE sqlMap&nbsp;&nbsp;PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;"<a class="con_link" href="http://ibatis.apache.org/dtd/sql-map-2.dtd" target="_blank">http://ibatis.apache.org/dtd/sql-map-2.dtd</a>"&gt;</p><p>&nbsp;</p><p>&lt;sqlMap namespace="testSqlMap"&gt;</p><p>&nbsp;&lt;select id="select" parameterClass="paramsMap" resultClass="resultMap"&gt;<br>&nbsp; &nbsp;&nbsp;select&nbsp; * from tab<br>&nbsp; &nbsp;&lt;/select&gt;<br>&nbsp; &nbsp;<br>&nbsp; &nbsp;&lt;insert id="insert" parameterClass="java.util.Map"&gt;<br>&nbsp; &nbsp;&nbsp;insert into emp(EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)&nbsp; &nbsp;&nbsp;<br>&nbsp; &nbsp;&nbsp;values(#EMPNO#, #ENAME#, #JOB#, #MGR#, sysdate, #SAL#, #COMM#, #DEPTNO#)<br>&nbsp; &nbsp;&lt;/insert&gt;<br>&nbsp; &nbsp;<br>&nbsp; &nbsp;&lt;update id="update" &gt;<br>&nbsp; &nbsp;&nbsp;update emp<br>&nbsp; &nbsp;&nbsp;set&nbsp;&nbsp;comm = 900<br>&nbsp; &nbsp;&lt;/update&gt;</p><p>&nbsp;&nbsp;&nbsp;<br>&nbsp;&lt;/sqlMap&gt;</p><p>&nbsp;</p><p>&nbsp;</p><p>자, 그럼 이제 자바소스안에서 쿼리를 실행하는 예제를 보자.</p><p>* BaseServlet.java</p><p>import com.ibatis.sqlmap.client.SqlMapClientBuilder;<br>import com.ibatis.sqlmap.client.SqlMapClient;<br>import com.ibatis.common.resources.Resources ;</p><p>&nbsp;</p><p>public class BaseServlet extends HttpServlet {</p><p><br>protected static SqlMapClient sqlMapClient = null; &nbsp;<br>&nbsp;<br>&nbsp;static {<br>&nbsp;&nbsp;//&nbsp; sql-map-config.xml 파일을 불러온다.<br>&nbsp;&nbsp;String resource = "com/ibatis/config/sql-map-config.xml";<br>&nbsp;&nbsp;Reader reader =null;<br>&nbsp;&nbsp;try{</p><p>&nbsp;&nbsp;&nbsp;reader = Resources.getResourceAsReader (resource);<br>&nbsp;&nbsp;&nbsp;sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);&nbsp;&nbsp;<br>&nbsp;&nbsp;}catch(IOException e){&nbsp;</p><p>&nbsp; }finally{<br>&nbsp;&nbsp;&nbsp;if(reader != null) {<br>&nbsp;&nbsp;&nbsp;&nbsp;try{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader = null;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}catch(IOException e){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("2222222222222222222" + e);<br>&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;}&nbsp;<br>&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br>&nbsp;}</p><p>}<br>&nbsp;</p><p>* TestServlet.java</p><p>public class TestServlet extends BaseServlet{<br>&nbsp;protected&nbsp; void doGet(HttpServletRequest req, HttpServletResponse res){<br>&nbsp;&nbsp;doPost(req, res);<br>&nbsp;}<br>&nbsp;<br>&nbsp;protected&nbsp; void doPost(HttpServletRequest req, HttpServletResponse res){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;try{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p><p><span style="COLOR: #ff0000">&lt;!-- 기본적으로 autoCommit이다.따라서 여러건의 DML을 수행할경우 트랜잭션을 걸어줘야한다.--&gt;<br></span>&nbsp;&nbsp;&nbsp;<span style="COLOR: #3a32c3">&nbsp;sqlMapClient.startTransaction();&lt;!-- 트랜잭션 시작 setAutoCommit(false) 와 같음--&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p><p>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;List list = sqlMapClient.queryForList("testSqlMap.select", null);</p><p><br>&nbsp;&nbsp;&nbsp;&nbsp;Map map = null;<br>&nbsp;&nbsp;&nbsp;&nbsp;for(int i=0; i&lt;list.size(); i++){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map = (Map)list.get(i);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("테이블이름 : " + map.get("TNAME"));<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;Map hmap = new HashMap();&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;hmap.put("EMPNO", "1461");<br>&nbsp;&nbsp;&nbsp;&nbsp;hmap.put("ENAME", "정상현");<br>&nbsp;&nbsp;&nbsp;&nbsp;hmap.put("JOB", "OWNER");<br>&nbsp;&nbsp;&nbsp;&nbsp;hmap.put("MGR", "7698");<br>&nbsp;&nbsp;&nbsp;&nbsp;hmap.put("SAL", "99999");<br>&nbsp;&nbsp;&nbsp;&nbsp;hmap.put("COMM", "99999");<br>&nbsp;&nbsp;&nbsp;&nbsp;hmap.put("DEPTNO", "40");<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;Object obj = sqlMapClient.insert("testSqlMap.insert", hmap);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;int i = sqlMapClient.update("testSqlMap.update2", null);&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;<span style="COLOR: #3a32c3">&nbsp;sqlMapClient.commitTransaction();&lt;!-- commit() 과 같음--&gt;<br></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;res.sendRedirect("/view.jsp");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;}catch(Exception ee){<br>&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("에러 ::::::::" + ee);<br>&nbsp;&nbsp;&nbsp;}finally{&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;try{<br>&nbsp;&nbsp;&nbsp;&nbsp;<span style="COLOR: #3a32c3">&nbsp;sqlMapClient.endTransaction();&lt;!-- 만약 중간에 에러가 나서 커밋이 안된경우 롤백한다.--&gt;</span>&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;}catch(Exception e){}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;}</p><p>&nbsp;}<br>}</p>			 ]]> 
		</description>

		<comments>http://matz.egloos.com/1446256#comments</comments>
		<pubDate>Mon, 13 Apr 2009 06:46:01 GMT</pubDate>
		<dc:creator>matz</dc:creator>
	</item>
	<item>
		<title><![CDATA[ iBATIS기초 - JNDI설정 ]]> </title>
		<link>http://matz.egloos.com/1442344</link>
		<guid>http://matz.egloos.com/1442344</guid>
		<description>
			<![CDATA[ 
  <p><span style="COLOR: #e31600">sqlMapClient.xml 설정파일에서</span><br><br></p><div class="txc-textbox" style="BORDER-RIGHT: #c1c1c1 1px dashed; PADDING-RIGHT: 10px; BORDER-TOP: #c1c1c1 1px dashed; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; BORDER-LEFT: #c1c1c1 1px dashed; PADDING-TOP: 10px; BORDER-BOTTOM: #c1c1c1 1px dashed; BACKGROUND-COLOR: #eeeeee">&lt;?xml version="1.0" encoding="UTF-8" ?&gt; <p>&lt;!DOCTYPE sqlMapConfig&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; "<a href="http://ibatis.apache.org/dtd/sql-map-config-2.dtd">http://ibatis.apache.org/dtd/sql-map-config-2.dtd</a>"&gt;</p><p>&lt;sqlMapConfig&gt;<br>&nbsp;<br>&nbsp;&lt;settings<br>&nbsp;&nbsp;cacheModelsEnabled="true"<br>&nbsp;&nbsp;enhancementEnabled="true"<br>&nbsp;&nbsp;lazyLoadingEnabled="true"<br>&nbsp;&nbsp;maxRequests="50"<br>&nbsp;&nbsp;maxSessions="25"<br>&nbsp;&nbsp;maxTransactions="10"<br>&nbsp;&nbsp;useStatementNamespaces="false"<br>&nbsp;/&gt;</p><p>&nbsp;&lt;!--Type aliases allow you to use a shorter name for long fully qualified class names. --&gt;</p><p>&nbsp;&lt;typeAlias alias="order" type="testdomain.Order"/&gt;</p><p>&nbsp; &lt;!-- Configure a built-in transaction manager.&nbsp; If you're using an <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app server, you probably want to use its transaction manager <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and a managed datasource --&gt;<br>&nbsp; <span style="COLOR: #e31600">&lt;transactionManager type="JDBC" commitRequired="false"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp; &lt;dataSource type="JNDI"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;property name="DataSource" value="java:/comp/env/jdbc/DB"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/dataSource&gt; <br>&nbsp; &lt;/transactionManager&gt;<br></span>&nbsp; <br>&nbsp; &lt;!--sqlMap resource="C:\LuckyData\Project\Java1.5\data\ibatis\Member.xml"/--&gt;<br>&nbsp; &lt;sqlMap resource="board/board.xml"/&gt;<br>&nbsp; &lt;sqlMap resource="login/login.xml"/&gt;&nbsp; <br>&nbsp; &lt;sqlMap resource="db/dbChange.xml"/&gt;<br>&nbsp; &lt;sqlMap resource="statics/static.xml"/&gt;<br>&nbsp; <br>&nbsp; &lt;!-- List more here...<br>&nbsp; &lt;sqlMap resource="com/mydomain/data/Order.xml"/&gt;<br>&nbsp; &lt;sqlMap resource="com/mydomain/data/Documents.xml"/&gt;<br>&nbsp; --&gt; </p><p>&lt;/sqlMapConfig&gt;</p></div><br>빨간색 부분처럼 바꿔준다.&nbsp;JNDI 물론 톰캣 SERVER.XML에 설정이 되있어야 겠다.<br><br>SERVER.XML<br><div class="txc-textbox" style="BORDER-RIGHT: #f3c534 1px dashed; PADDING-RIGHT: 10px; BORDER-TOP: #f3c534 1px dashed; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; BORDER-LEFT: #f3c534 1px dashed; PADDING-TOP: 10px; BORDER-BOTTOM: #f3c534 1px dashed; BACKGROUND-COLOR: #fefeb8">&lt;Context docBase="" path="" reloadable="true"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&lt;Resource name="jdbc/IMARC" auth="Container" type="javax.sql.DataSource"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; driverClassName="oracle.jdbc.driver.OracleDriver"&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url="jdbc:oracle:thin:@XXX.XXX.XXX.X:XXX:XXXX"&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username="XXXX" password="XXXX maxActive="20" maxIdle="10" maxWait="10000" /&gt;<br>&lt;/Context&gt; </div><br>각자설정에 알맞게 바꿔야겠죠?^^<br><br>			 ]]> 
		</description>
		<category>jsp</category>

		<comments>http://matz.egloos.com/1442344#comments</comments>
		<pubDate>Fri, 10 Apr 2009 05:56:03 GMT</pubDate>
		<dc:creator>matz</dc:creator>
	</item>
	<item>
		<title><![CDATA[ SSH클라이언트 접속시 한글깨짐문제 - /etc/sysconfig/i18n ]]> </title>
		<link>http://matz.egloos.com/1431990</link>
		<guid>http://matz.egloos.com/1431990</guid>
		<description>
			<![CDATA[ 
  <p><strong><span style="COLOR: #3d4444">SSH클라이언트 접속시 한글깨짐문제 - /etc/sysconfig/i18n</span></strong></p><p>&nbsp;</p><span class="ct lh"><span style="FONT-SIZE: 10pt"><p><span class="ct lh">흠..</span></p><p><span class="ct lh">별로 신경 안썼었는데 SSH접속 시 한글이 깨지는 경우를 볼 수 있었다.</span></p><p><span class="ct lh">putty는 안그런다고들 하지만.. 내경우엔 Zterm을 쓰니.. (습관이 무섭다;)</span></p><p>&nbsp;</p><p><span class="ct lh">암튼 어쩔수없이 설정을 잡기로 맘먹고..</span></p><p>&nbsp;</p></span><p><span class="ct lh"><span style="FONT-SIZE: 12pt; COLOR: #ff0000"><span class="ct lh"><strong>/etc/sysconfig/i18n</strong></span></span></span></p><span style="FONT-SIZE: 9pt"><span style="FONT-SIZE: 10pt"><p>&nbsp;</p><p><span class="ct lh">&gt;&gt; 설정내용 (EUCKR용) =============================================</span></p><span class="ct lh"><p><span class="ct lh"><span style="COLOR: #0000ff">LANG="ko_KR.eucKR" <br>SUPPORTED="en_US.iso885915:en_US:en:ko_KR.eucKR:ko_KR:ko" <br>SYSFONT="lat0-sun16" <br>SYSFONTACM="iso15" </span></span></p><p>&nbsp;</p><p>====================================================================</p><p>손을 댔는데.. 흠.. 역시 난 EUC-KR이 싫다.</p><p>뭐 EUC-KR이 기필코 필요하다면 써야하니.. 일단 주석처리..ㅋㅋ</p></span><p><span class="ct lh">다시 설정을 잡아야지..</span></p><br><p><span class="ct lh">&gt;&gt; 설정내용 (UTF-8용) ==============================================</span></p><p><span style="COLOR: #0000ff">LANG="en_US.UTF-8"<br></span><span style="COLOR: #0000ff">SUPPORTED="en_US.UTF-8:en_US:en:ko_KR.UTF-8:ko_KR:ko"</span></p><p><span style="COLOR: #0000ff">SYSFONT="latarcyrheb-sun16"<br></span>====================================================================</p><br><p>한글 자알~나오고있다ㅋㅋ</p></span></span></span>			 ]]> 
		</description>
		<category>리눅스</category>

		<comments>http://matz.egloos.com/1431990#comments</comments>
		<pubDate>Thu, 02 Apr 2009 02:58:59 GMT</pubDate>
		<dc:creator>matz</dc:creator>
	</item>
</channel>
</rss>
