posted by 준치 2008. 11. 28. 16:51

iBatis에서 데이터 삽입방법은 인라인이나 파라미터맵으로 할수 있다.

=================================================================================
인라인법은 아래처럼 #value#를 써서 바로 이용하는것이고..
 <insert id="insert_inline">
  INSERT INTO
   USER_ACCOUNT
    (USERNAME, PASSWORD, GROUPNAME)
   VALUES
    (
     #USERNAME:VARCHAR#,
     #PASSWORD:VARCHAR#,
     #GROUPNAME:VARCHAR#
    )
 </insert>

=================================================================================
파라미터맵은 따로 개체에 해당하는 파라미터부분을 설정해서 이용하는것이다.
iBatis가 SQL을 분석하는것이 아니기 때문에 ? 와 파라미터맵은 순서가 같아야 한다.
즉,,,순서가 중요..

 <parameterMap id="parametermap_insert" class="Account">
  <parameter property="USERNAME" jdbcType="VARCHAR" />
  <parameter property="PASSWORD" jdbcType="VARCHAR" />
  <parameter property="GROUPNAME" jdbcType="VARCHAR" />
 </parameterMap>

 <insert id="insert_parametermap" parameterMap="parametermap_insert">
  INSERT INTO
   USER_ACCOUNT
    (USERNAME, PASSWORD, GROUPNAME)
   VALUES
    (?, ?, ?)
 </insert>

=================================================================================
삽입시 시퀀스(오라클)나 identity(MSSQL) 또는 auto_increment(MYSQL)일때
아래처러 selectKey를 이용하면 입력된 데이터의 KEY를 얻을수 있다.
SQL에서 시퀀스를 어떻게 이용하냐에 따라서 selectKey를 위에 두거나, 아래에 두는것을 결정한다.
selectKey가 위에 있는경우 - selectKey를 먼저 수행후 발급된번호를 변수에 두고 SQL에서 발급된 값을 이용
selectKey가 아래에 있는경우 - SQL수행시 시퀀스를 발급하고 발급된 번호를 selectKey를 통해서 가져옴
 <insert id="insert_inline">
  INSERT INTO
   USER_ACCOUNT
    (USERNAME, PASSWORD, GROUPNAME)
   VALUES
    (
     #USERNAME:VARCHAR#,
     #PASSWORD:VARCHAR#,
     #GROUPNAME:VARCHAR#
    )
  <selectKey keyProperty="USERID" resultClass="int">
   SELECT LAST_INSERT_ID()
  </selectKey>
 </insert>

시퀀스 값 얻기
oracle - nextval(#sequence#)
mssql - SCOPE_IDENTITY()
mysql - LAST_INSERT_ID()

=================================================================================
삭제도 비슷하다.

 <delete id="delete_inline" parameterClass="int">
  DELETE FROM USER_ACCOUNT WHERE USERID = #value#
 </delete>

=================================================================================
업데이트도 비슷.. -_-

 <parameterMap id="parametermap_update" class="Account">
  <parameter property="USERNAME" jdbcType="VARCHAR" />
  <parameter property="PASSWORD" jdbcType="VARCHAR" />
  <parameter property="GROUPNAME" jdbcType="VARCHAR" />
  <parameter property="USERID" jdbcType="NUMBER" />
 </parameterMap>

 <update id="update_inline" parameterMap="parametermap_update">
  UPDATE USER_ACCOUNT SET USERNAME=?, PASSWORD=?, GROUPNAME=? WHERE USERID=?
 </update>

posted by 준치 2008. 11. 25. 01:13
class StringSplit3
{
      public static void main(String[] args)
      {
            String str = "1,김천재,100,100,100,`2,박수재,95,80,90,`3,이자바,80,90,90,`4,소주섭,70,60,90,";

            String[] data = str.split("`");             // `를 구분자로 해서 문자열을 나눈다.
            String[] subData=null; 
            Student[] score = new Student[data.length];

            for(int i=0;i < data.length;i++) {
                  subData = data[i].split(",");       // , 를 구분자로 해서 문자열을 나눈다.
                  score[i] = new Student(subData[0],subData[1],subData[2],subData[3],subData[4]);
            }

            for(int i=0;i < score.length;i++) {
//                   System.out.println(score[i].toString()); 이문장과 아래문장은 같은 결과를 얻는다.
                  System.out.println(score[i]);
            }
      }
}

class Student
{
      String no="";
      String name="";
      String korean="";
      String english="";
      String math="";

      Student(String no, String name, String korean, String english, String math) {
            this.no = no;            
            this.name = name;            
            this.korean = korean;            
            this.english = english;            
            this.math = math;            
      }

      public String toString() {
            return "번호:" + no + ", 이름:" + name + ", 국어:" + korean + ", 영어:" + english + ", 수학:"+ math;
      }

}

/*
번호:1, 이름:김천재, 국어:100, 영어:100, 수학:100
번호:2, 이름:박수재, 국어:95, 영어:80, 수학:90
번호:3, 이름:이자바, 국어:80, 영어:90, 수학:90
번호:4, 이름:소주섭, 국어:70, 영어:60, 수학:90
*/

정보보안  민호쌤? 거기서 퍼옴 C#이랑 다를게 역시..없군.....
posted by 준치 2008. 11. 21. 19:40

1. <s:property/> 기본적으로 액션 클래스의 프로퍼티 값을 출력한다

    default   String value 속성 값이 널이면 사용할 기본값

    excape  Boolean Html 형식으로 출력할지여부

    value     Object          출력할 값 

    id          Object/String  참조할 요소에 대한 id , UI, form 태그에 대하여 HTML id 속성 사용

 

2.<s:iterator/> 값들을 반복처리 한다 .

    iterator 반복 대상은

    java.util.Collection 과 java.util.Iterator 다

   status Boolean 선언되어 있다면 , IteratorStatis 의 인스턴스가 iterration 스택에 저장된다 .

   value  Object/String   반복될수 있는 소스,아니면 그 자체의 객체가 새롭게 생성된 리스트

   id        Object/String  참조할 요소에 대한 id , UI, form 태그에 대하여 HTML id 속성 사용

 

3. <s:if /> , <s:elseif /> , <s:else />  조건문

    test   표현식

    id     Object/String  참조할 요소에 대한 id , UI, form 태그에 대하여 HTML id 속성 사용

 

4.<s:date name="currentDate"/><br/>
  <s:date name="currentDate" format="yyyy-MM-dd hh:mm:ss"/><br/> 

   날짜 출력

   name   변수명

   nice     Boolean  [나중정리]  

   formart 출력 포멧

 

5.<s:textfield /> input type="text"

   maxlangth 

   value
6.<s:form /> input type='submit'
   onsubmit()   html onsubmit 속성

   action          action 이름 

   target          target 속성

   enctype      enctype 속성

   method       method 속성

   namespace  네임 스페이스 엑션의 네임 스페이스

   validate      Boolean  클라이언트/리모트에서 유효성 검사 수행 여부 

   portletMode   폼을 서브밋 한후 출력한 포틀릿 모드

   windowState   폼을 서브및 한후 출력할 원도우 상태

   acceptcharset 폼에 대한 문자 셋 설정 ,

   openTemplate   랜더링된 HTML 을 열기 위하여 사용 

    Ajax 사용시

   href

   errorText

   listenTopics

   notifyTopics

   executeScripts

   lodingText

   listenTopics

   handler

   formFilter

   targets

   showErrorTransportText

   indicator   

    

 

7.<s:textarea />  theme  에 simple 값을 설정하면 <textarea /> 테그로 랜더링 되고

                         theme 에 ajax 값을 설정 하면 텍스트에 포맷을 설정할수 있는 Dojo 컴포넌트로 랜더링된다 .

 

   cols    HTML 의 cols ,

   rows

   wrap 

   theme

 

8.<s:head/>  html 파일에 대한 head 섹셩의 부분으로 랜더링 된다 . 테마의 css 를 적용하고 .

                   자바스크립트를 포함할때 유용하다

      calendarcss    사용할 jscalender css 테마 기본값은 calender-blue.css 이다 .

      debug            ajax 테마에서 대한 디버깅 모드를 사용 하기 위해서 true 설정

      theme              simple , xhtml , ajax 테마중 택일  

 

9.<s:datetimepicker/> Dojo datetimepicker 요소를 랜더링 한다 .

     datetimepicker 위젯은 연도,월 ,주를 증가시키면서 날짜를 쉽게 선택 할수 있게 해주는 기능을 갖는다 .

     adjustWeeks  boolean true 로 설정되면 카렌다의 주별 크기가 월에 적합하게 변한다 . false 로 설정되면 42일 형식이사용된다. 

     dayWidth       String 헤더에서 요일의 이름을 렌더링 하는 방식

     displayFormart  String 날짜를 출력하는 형식

     displayWeeks   Integer 출력할 총 주의 수

     endDate           2941-10-12 카렌더에서 설정되는 마지막 날짜

     formatLength     String 출력할 떄 사용할 형식의 타입

     iconPath          드롭다운에 사용할 아이콘 경로

     startDate          카렌더에서 설정되는 처음 날짜

     statucDisplay   월년도 등 증가 버튼을 출력 하지 않는다 .

      toggleDuratuib  토글시간

      toggleType       카렌터 박스의 출력 형식 , plain,wide , explode ,fade

      type                 드롭다운 선택 버튼 형싣 ,

      weekStarton      주의 첫요일 설정(0==일요일,6==토요일)      

 

10.<s:url />       url 을 생성 할수 있다 . 요청 파라미터를 추가 시킬수도 있다

      <s:url >

         <s:parameter name=""/>

      </s:url>

      includeParams      includeParams 속성은 none , get , all 중 하나

      scheme                scheme 속성을 설정한다

      value                    action 속성을 사용하지 않는다면 사용할 target

      action                  action

      namespace           사용할 네임 스페이스

      method                 사용할 actuib  의 메소드

      encode                 파라미터를 인코딩 할것인지 여부

      includeContext       실제 컨텍스트가 url 안에 포함되어야 하는지 여부

      portleMode            포틀릿 결과 모드

      windowState          포틀릿 결과 원도우 상태

      portietUrlType          폴틀릿 랜더링 또는 action url 인지 설정

      anchor                   url 에 대한 anchor

      id

    

     <s:param />

       name ,

       value

       id

     <s:a />


posted by 준치 2008. 11. 9. 13:08

Tomcat 5.5 버전대의 웹어플리케이션을 설정하는 방법을 정리 해 둡니다.
물론, Jakarta-Apache 의 Tomcat 매뉴얼 을 참조하는게 제일 정확하고 올바른 방향입니다.

이 문서를 작성하는 이유는 처음 웹어플리케이션을 구축하는 단계에서 꼭 필요한 설정사항과 설정파일을
간편히 참조하고자 하는데 그 목적이 있습니다.

1. Context Path 설정
톰캣 4 버전대의 경우, Context Path를 [CATALINA_HOME]/conf/server.xml 에 기술 했지만 5 버전부터는
그 방법이 바뀌었습니다.

  - 1단계 :  [CATALINA_HOME]/conf/server.xml 에 HOST 항목 추가하기
     톰캣 5.5 를 설치하고 난 후 server.xml 를 열어보면 아래와 같이 기본적으로 localhost 란 이름으로 HOST
     항목이 정의되어 있을 겁니다.

    <Host
        appBase="webapps"
        autoDeploy="false"
        liveDeploy="false"
        name="localhost">
    </Host>
      이 아래에 이어서 추가하고자하는 HOST항목을 추가 해 줍니다.
    <Host
        appBase="webapps"
        autoDeploy="false"
        liveDeploy="false"
        name="www.new_site.com">
    </Host>

   - 2단계 :  [CATALINA_HOME]/conf/Catalina 디렉토리에 HOST 디렉토리 추가하기
      디폴트로 [CATALINA_HOME]/conf/Catalina/localhost 란 디렉토리가 있을겁니다.
      [CATALINA_HOME]/conf/Catalina 디렉토리 내에 1단계에서 추가한 HOST ( www.new_site.com )의
      이름을 갖는 디렉토리를 추가합니다.

      [CATALINA_HOME]/conf/Catalina/www.new_site.com

    - 3단계 :  ROOT.xml 생성
      2단계에서 생성한 디렉토리 내에 빈 ROOT.xml 을 만들고 그 파일에 context path를 기술해 줍니다. 
      <?xml version="1.0" encoding="UTF-8"?>
      <Context
          docBase="D:/Project2007/AirForceClubReservationSystem/build/web"
          privileged="true">
      </Context>

      여기서 docBase는 웹어플리케이션이 위치하는 절대경로를 기술해 줍니다.


2. 공용 라이브러리 설정

    - 4단계 : 공용 라이브러리 배치하기
      위와같은 순서로 톰캣서버에 여러개의 호스트가 존재 할 수 있는데 모든 호스트가 공통으로 사용하는 라이브러리 ( JDBC드라이버와 같은 )
      등이 있을 수 있습니다. 각각의 호스트별로 java 옵션을 통하여 클래스패스를 걸어주셔도 되지만 톰캣이 올라가는 와중에 
      참조해야 하는 라이브러리라면 굳이 옵션으로 주시지 않으셔도 됩니다.

      [CATALINA_HOME]/common/lib 디렉토리안에 필요한 라이브러리를 넣어두시면 톰캣 스타트업시 별도의 클래스패스를
      잡지 않아도 자동 참조를 시도 합니다.

    - 5단계 : Tomcat 재시작 하기
      여기까지 설정한 후 톰캣을 재시작 하시면 톰캣 어드민 콘솔을 통하여 다음과 같이 HOST가 추가되어 있는것을 확인 하실 수 있습니다.

호스트 추가 후 호스트 추가 전

                                       호스트 추가 전                                                            호스트 추가 후


    - 6단계 : 접속 하기
      hosts ( C:\Windows\System32\drivers\etc\hosts ) 파일을 열어 위에서 추가한 호스트 ( www.new_site.com ) 를 
      로컬 호스트로 지정 한 후 
                127.0.0.1                www.new_site.com
      브라우저를 열고 http://www.new_site.com:[포트번호] 의 주소로 접속 해 본다.
<출처 : 서비의 다락방 ( http://www.yunsobi.com )>
-출처를 밝혀주신 당신은 아름다운 사람입니다.-
posted by 준치 2008. 11. 5. 21:29
tring은 int형으로, int형은 String으로

ParseExam.java

Java에서의 형 변환은 빈번히 일어나는 일이다.
그래서 형 변환에 관해서는 필수적으로 알아야 한다.
그 중 가장 많이 일어나는 String->int, int->String에 대해서 살펴보자.
String을 int형으로 바꾸기 위해서는 java.lang팩키지의 Integer클래스에서 parseInt(String s)메소드를 알아야 한다.
public static int parseInt(String s) throws NumberFormatException
매개변수로 String클래스의 인스턴스 s를 받아서 숫자로 변환이 가능하면 int형의 값을 반환한다.
만약에 숫자로 변환이 가능하지 않으면 NumberFormatException이라는 RuntimeException을 던지는 메소드이다.
두번째는 int형을 String으로 바꾸는 과정이다. 이것은 java.lang팩키지의 String클래스에서 valueOf(int i)메소드를 알아야한다.
public static String valueOf(int i)
매개변수 int형의 변수 i를 받아서 String형의 인스턴스를 반환한다.
Integer.toString()에 의해서 반환되는 값과 동일하다.
위의 두 메소드만 알면 String과 int형 사이에서의 형 변환은 쉽게 할 수 있다.
public class ParseExam {

public static void main(String[] args) {

String numStr = "54";

// String값을 int형의 값으로 바꾸는 방법
int numInt = Integer.parseInt(numStr);
System.out.println(numInt);

// int형의 값을 String으로 바꾸는 방법
String numStr2 = String.valueOf(numInt);
System.out.println(numStr2);
}

}
posted by 준치 2008. 11. 5. 21:28

버젼따라 다르겠지만 우선 올라와있길래 가져왔습니다...ㅎㅎㅎ
설치과정

1. 자바
    1. http://www.sun.com-> download-> java SE-> jdk 6 update 5
    2. 설치..
    3. 내컴퓨터 -> 오른쪽 마우스 등록정보 -> 고급 -> 환경변수 ->
        path-> C:\Program Files\Java\jdk1.6.0_05\bin; 추가

2. Tomcat
    1. http://www.apache.org-> download-> Tomcat-> Tomcat5.5-> core: Windows Service Installer
    2. port: 8080, userName: user, Password: passwd
    3. 마지막 부분에 체크해제후 finish.

3. eclipse
    1. http://www.eclipse.org/download-> 오른쪽에서 Web Tool-> 2.0.1->
        Web Tools Platform All_in_One Package
    2. c:에 압축풀기

4. MySQL
    1. http://www.sun.com-> download-> MySQL
    2. 설치옵션중 ManualSetting: 200
                  Manul Selected...
                  Include... 체크하기

5. Tomcat 실행

6. Oracle
    1. http://www.oracle.com
    2. 암호: passwd, port: 8081
        tip) 포트번호가 틀렸을때 수정하기!
            SQL콘솔에서
                1. connect system/passwd;
                2. exec dbms_xdb.sethttpport(8081);
                3. C:\oraclexe\app\oracle\product\10.2.0\server\Database_homepage.html에서
                    오른쪽클릭-> 등록정보-> 주소명을 8080에서 8081로 변경

7. Tomcat Plugin
    1. http://www.eclipsetotale.com/tomcatPlugin.html-> PluginV321.zip 다운받기
    2. C:\eclipse\plugins에 압축풀기
        tip) plugin을 나중에 설치했을때
            1. 실행창에서 C:\eclipse\eclipse.exe -clean

8. DB설정(JDBC)
    1. C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\ojdbc14.jar파일을
        C:\Program Files\Java\jre1.6.0_05\lib\ext 또는
        C:\Program Files\Java\jdk1.6.0_05\jre\lib\ext에 복사하기
    2. http://dev.mysql.com/downloads-> Connectors-> Connector/J->
        mysql-connector-java-5.1.6.zip-> mysql-connector-java-5.1.6-bin.jar파일을
        C:\Program Files\Java\jre1.6.0_05\lib\ext 또는
        C:\Program Files\Java\jdk1.6.0_05\jre\lib\ext에 복사하기

9. Server, Tomcat 프로젝트 생성

10. eclipse설정
    1. Server 연결
        1. window-> Preferences-> Server-> Installed Runtimes-> add-> Apache->
            Apache Tomcat v5.x-> next-> 디렉토리에 tomcat폴더 설정-> finsh-> ok
        2. window-> Show view-> other-> Servers-> Servers창에서 오른쪽 버튼->
            new-> server-> tomcat v5.x-> 프로젝트 명 추가하기
    2. Tomcat 연결
        1. window-> Preferences-> Tomcat-> v5.5-> Browse-> Adcanced-> Browse-> apply-> ok

11. Html, Jsp 파일 생성
    1. Server 설정
        1. 서버 연결 하기
        2. C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\tomcat-docs\index.html 열기
        3. User Guide-> 9) JDBC DataSources-> 1. Context configuration 복사하기
        4. Servers 프로젝트-> Tomcat v5.5 Server at localhost-config-> server.xml에 추가하기
    2. Tomcat 설정
        1. C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\tomcat-docs\index.html 열기
        2. User Guide-> 9) JDBC DataSources-> 1. Context configuration 복사하기
        3. C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\server.xml에 추가하기
           C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost\디렉토리명.xml에 추가하기
            tip) 추가내용
                1.오라클
                <Resource name="jdbc/myoracle"
                          auth="Container"
                          type="javax.sql.DataSource"
                          driverClassName="oracle.jdbc.OracleDriver"
                          url="jdbc:oracle:thin:@127.0.0.1:1521:xe"
                          username="user"
                          password="passwd"
                          maxActive="20"
                          maxIdle="10"
                          maxWait="-1"/>
                2. MySQL
                <Resource name="jdbc/myoracle"
                          auth="Container"
                          type="javax.sql.DataSource"
                          driverClassName="com.mysql.jdbc.Driver"
                          url="jdbc:mysql://localhost:3306/test?autoReconnect=true"
                          username="root"
                          password="passwd"
                          maxActive="20"
                          maxIdle="10"
                          maxWait="-1"/>

posted by tornado 2008. 9. 26. 16:53
http://www.spket.com/

요상한 기능들이 많이 있는듯~ 


posted by 알 수 없는 사용자 2008. 9. 4. 15:01

Java examples

이름은 자바지만 거의 모든 개발언어에 대한 샘플코드가 풍부하게 들어있습니다.

SharePoint만 없군요... -_-


posted by 알 수 없는 사용자 2008. 8. 28. 14:37

시스템의 밀리초 구하기.(국제표준시각(UTC, GMT) 1970/1/1/0/0/0 으로부터 경과한 시각)
------------------------------------------------------------------
//밀리초 단위(*1000은 1초), 음수이면 이전 시각
long time = System.currentTimeMillis ( );
System.out.println ( time.toString ( ) );
------------------------------------------------------------------

현재 시각을 가져오기.
------------------------------------------------------------------
Date today = new Date ();
System.out.println ( today );
결과 : Sat Jul 12 16:03:00 GMT+01:00 2000
------------------------------------------------------------------

경과시간(초) 구하기
------------------------------------------------------------------
long time1 = System.currentTimeMillis ();
long time2 = System.currentTimeMillis ();
system.out.println ( ( time2 - time1 ) / 1000.0 );
------------------------------------------------------------------
 
Date를 Calendar로 맵핑시키기
------------------------------------------------------------------
Date d = new Date ( );
Calendar c = Calendar.getInstance ( );
c.setTime ( d );
------------------------------------------------------------------

날짜(년/월/일/시/분/초) 구하기
------------------------------------------------------------------
import java.util.*;
import java.text.*;

SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy.MM.dd HH:mm:ss", Locale.KOREA );
Date currentTime = new Date ( );
String dTime = formatter.format ( currentTime );
System.out.println ( dTime );
------------------------------------------------------------------
 
날짜(년/월/일/시/분/초) 구하기2
------------------------------------------------------------------
GregorianCalendar today = new GregorianCalendar ( );
int year = today.get ( today.YEAR );
int month = today.get ( today.MONTH ) + 1;
int yoil = today.get ( today.DAY_OF_MONTH );
GregorianCalendar gc = new GregorianCalendar ( );
System.out.println ( gc.get ( Calendar.YEAR ) );
System.out.println ( String.valueOf ( gc.get ( Calendar.MONTH ) + 1 ) );
System.out.println ( gc.get ( Calendar.DATE ) );
System.out.println ( gc.get ( DAY_OF_MONTH ) );
------------------------------------------------------------------

날짜(년/월/일/시/분/초) 구하기3
------------------------------------------------------------------
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.KOREA);
Calendar cal = Calendar.getInstance(Locale.KOREA);
nal = df.format(cal.getTime());
------------------------------------------------------------------