--주문 반사---

/cast [nostance:2] 방어 태세
/equip  [noequipped: 방패] 병사의 가시 철퇴
/equip  [noequipped: 방패] 네루비안 내피 방패
/stopcasting
/cast [stance:2]주문 반사

버프 전태와 광태일때  외침 종류
/castsequence reset=combat/target/3  사기의 외침,광전사의 격노,죽음의 침묵,피의 격노



돌진과 말타기를 한번에하는 메크로 전투중일때는 광태로 변경후 봉쇄 한다.

/시전 [harm, nocombat,nodead,stance:1]돌진;[harm, nocombat,nodead,nostance:1]전투 태세;[combat,nostance:3]광폭 태세;[combat,target=mouseover,harm,nodead]봉쇄;[combat,target=harm,nodead]봉쇄;[nocombat,flyable]날쌘 보라색 와이번; [nocombat,noflyable]날쌘 갈색 늑대


전사 2분쿨탐 스킬 태새마다 쓰기

/cast [stance:1,combat]보복;[stance:2,combat]방패의 벽; [stance:3,combat]무모한 희생
이름 변경 하고 싶으면

eclipse.ini

-Duser.name="BeDDungDDeng"

자바 주석에 본이이 할일 또는 해야할일을 미리 정의한다.!!
 이클립스 에서 
// TODO: 구현하세요 타이핑한뒤 메뉴의 Window - Show View -> Tasks
보면 할일 이 나타난다.


TODO: 뭔가 해야 할 작업을 기록한다. 일반적으로 많이 쓰는 듯 하다. 
FIXME: 이 코드에는 문제가 있거나 개선해야 할 사항이 있다. 수정을 해야 하는걸 마크 
BUG: 이 코드엔 버그가 존재한다. 수정필요
SEE: 명시된 다른 코드를 참조하라는 마크 
XXX: 뭔가 해야 할 작업을 기록하는 것이지만 TODO가 타인과 함께 작업하며 보여주기 위한 성향이 있는 반면 이 마크는 자신이 보기 위한 의미가 더 강하다고(?) 한다. 

<select id="getPerson" parameterClass=”int” resultClass="xml" xmlResultName=”person”>
SELECT
PER_ID as id,
PER_FIRST_NAME as firstName,
PER_LAST_NAME as lastName,
PER_BIRTH_DATE as birthDate,
PER_WEIGHT_KG as weightInKilograms,
PER_HEIGHT_M as heightInMeters
FROM PERSON
WHERE PER_ID = #value#
</select>
위 select 구문은 다음 구조의 XML객체를 생성할 것이다.
<person>
<id>1</id>
<firstName>Clinton</firstName>
<lastName>Begin</lastName>
<birthDate>1900-01-01</birthDate>
<weightInKilograms>89</weightInKilograms>
<heightInMeters>1.77</heightInMeters>
</person>
<parameterMap id=”insert-product-param” class=”com.domain.Product”>
<parameter property=”id”/>
<parameter property=”description”/>
</parameterMap>
<insert id=”insertProduct” parameterMap=”insert-product-param”>
insert into PRODUCT (PRD_ID, PRD_DESCRIPTION) values (?,?)
</insert>

com.domain.Product 클레스로 넘어온값을
파라메타를 다시 제정의한다 순서를 정한다.
그후
인서트 부분에
? ?
 순서대로 들어간다

insert into PRODUCT (PRD_ID, PRD_DESCRIPTION) values (id값이들어오고,description값이온다)



<!--  테이블 구조와 where 구조를 블럭화 한다 -->
<sql id="selectItem_fragment">
FROM items
WHERE parentid = 6
</sql>
<!-- 셀렉트 문 밑에 iclude 를 이용하여 붙여 넣기했다 -->
<select id="selectItemCount" resultClass="int">
SELECT COUNT(*) AS total
<include refid="selectItem_fragment"/>
</select>

<select id="selectItems" resultClass="Item">
SELECT id, name
<include refid="selectItem_fragment"/>
</select>


<!-- 파라메타 있는 구분도 가능 하다 -->

<sql id="selectItem_fragment">
FROM items
WHERE parentid = #value#
</sql>
<select id="selectItemCount" parameterClass="int" resultClass="int">
SELECT COUNT(*) AS total
<include refid="selectItem_fragment"/>
</select>
<select id="selectItems" parameterClass="int" resultClass="Item">
SELECT id, name
<include refid="selectItem_fragment"/>
</select>


maxRequests - 실행되는 쓰레드 갯수
maxSessions -
maxRequests   작게 maxTransactions 크게 설정한다. 최대치줄이면 메모리 사용량을 줄일수있다.
이유 - DB에 맺는 세션인데 생성자를 생성하는거다 컴퓨터에 가장 많은 부하를 일으키는것이
1. 파일 읽고 쓰기
2. 네트워크 요청 커넥션
3. 기타 IO
일명 IO라고 하겠다.
IO를 미리 맺어놓는 역활을 하는것이 Session 인데.. 이분분에는 생성자가 생기고 매모리가 추가된다 이때문에 매모리 가 늘어날수박에없다.
DB의 세션 한계도 한번 체크해보자 .!!
maxTransactions -
이것은 한꺼번에 SqlMapClient.startTransaction()에 들어갈수 있는 쓰레드
의 최대갯수이다.  maxSessions보다 작거나 같고 maxRequests보다 작아야함
이것은 DB의에 명령을 한번에할수있는부분이다.. 셀렉트는 시간이 오래걸리고 인서트는 금방한다. 모 차이는 종종있겠지만 .이런 부분을 한거번에 처리하는 갯수

cacheModelsEnabled -
이 셋팅은 SqlMapClient 를 위한 모든 캐쉬모델을 가능하게 하거나 가능하지 않게 한다. 이것은 디버깅시 도움이 된다.
enhancementEnabled -
 
이 셋팅은 향상된 늦은(lazy)로딩처럼 최적화된 자바빈즈 속성 접근을 위해 런
타임시 바이트코드 향상을 가능하게 한다.

useStatementNamespaces -
이 셋팅을 가능하게 하면 당신은 sqlmap이름과 statement이름으로 구성된 전
체적인 이름(fully qualified name)으로 매핑 구문를 참조해야 한다.


 
 


<html>
<head>
 <title></title>
 <script type="text/javascript">
 
 function commify(obj) {
  var n = obj.value;
  n = unNumberFormat(n);
    var reg = /(^[+-]?\d+)(\d{3})/;   // 정규식
    n += '';                          // 숫자를 문자열로 변환
    while (reg.test(n))
      n = n.replace(reg, '$1' + ',' + '$2');
   
    obj.value = n;     
 }

 function numberFormat(obj) {
  var pattern = /(-?[0-9]+)([0-9]{3})/;
  while(pattern.test(num)) {
   num = num.replace(pattern,"$1,$2");
  }
  return num;
 }

 //콤마제거
 function unNumberFormat(num) {
  return (num.replace(/\,/g,""));
 }  
 
</script>


 <input type=text name='aaaa' onkeyup="commify(this)"/>
</head>
<body>

</body>
</html>

여기저기 퍼와서 만들었다....


[ StringTokenizer 이용 ]

예제>
  String str = "MouseVM,,StringTokenizer";
  StringTokenizer tokens = new StringTokenizer( str, "," );를 사용 할 경우
 
  for( int x = 1; tokens.hasMoreElements(); x++ )
  {
    System.out.println( "문자(열) " + x + " : " + tokens.nextToken() );
  }

결과>
  문자(열) 1 : MouseVM
  문자(열) 2 : StringTokenizer


[ Split 를 이용 ]

예제>
  String str = "MouseVM,,Slpit";
  String[] values = str.split(",");

  for( int x = 0; x < values.length; x++ )
  {
    System.out.println( "문자(열) " + (x+1) + " : " + values[x] );
  }

결과>
  문자(열) 1 : MouseVM
  문자(열) 2 :
  문자(열) 3 : Slpit

이 두가지의 차이점은, StringTokenizer 는 값이 없는것은 무시 한다는 점입니다.
즉, 값이 없어도 처리를 하고 싶을경우 split를 이용하고, 그외의 경우는 StringTokenizer 를 사용하면 됩니다.

출처 :
http://cafe.naver.com/pgzoo.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=14


※ 주의사항
문자열을 나누기 위해 Split 함수를 쓸때 주의할 사항이 있습니다.
저도 오늘 사용하면서 알게 되었는데요~

String의 멤버함수들 중

replaceAll ( 정규식 , 대체문자열 )
split ( 정규식 )
matches ( 정규식 )

과 같이 정규식을 인수로 넣도록 하는 하는 것들이 있습니다.

정규식은 예약된 표기법을 이용 규칙적인 패턴을 갖는 문자열을 찾는다거나 혹은 변형하는 기능을 갖도록 합니다.

고로, 문자열이 만약 "MouseVM..Slpit" 로 정의되어 있다면
이렇게 str.split("."); 호출하여도 원하는 결과를 얻을 수 없다는 것을 의미합니다.

원하는 결과를 얻기 위해서는
str.split("\\.");
이렇게 사용하여야 합니다.

점(.)은 정규식에서 개행문자를 제외한 아무문자하나를 말합니다.
점을 점 그데로 인식 시키려면 예약어를 일반문자처럼 사용하기 위해 back slash를 앞쪽에 하나 넣어 주는데,  위에서 두 개를 넣은 것은  자바 문법에서  ""  내부에서 \ 가 예약어라 \\개를 넣어 줍니다.

출처 :
http://kin.naver.com/db/detail.php?d1id=1&dir_id=10106&eid=u+9cW21TVvIUIAhHBMe3iW90aKtjWOc/&qb=c3BsaXQoIi4iKQ==