'JAVA'에 해당되는 글 60건

  1. 2007.07.18 xml 구문 객체로 바로 읽어들이기 1
  2. 2007.05.17 [JSON] json으로 개발하려면 필요한것들. 1
  3. 2007.04.03 이클립스 에서 한글이 깨질때
  4. 2007.03.19 [sampe] addBatch Query일괄실행
  5. 2007.02.09 [sample] javascript 자신의 쿠키정보 파악하기 1
  6. 2007.02.09 [sample] junit setup 설정
  7. 2007.02.06 [sample] JDBC 연결 (tomcat / datasource)
  8. 2007.02.06 [sample] JDBC TEST
  9. 2007.02.06 [sample] 난수발생기
  10. 2007.02.05 [sample] System.arraycopy() 부분복사

  SAXReader reader = new SAXReader();
  Document document = reader.read(in);
  return parseData2Data(document);


참 간단한 구문이 아닐 수 없다.
하지만 가만히 보면 모든 xml 파싱에 비밀이 들어가 있다.
in 은 InputStream으로 URL상에 존재하는 내용을 InputStream으로 받아온다.
그 받아온 IN 객체를 SAXReader를 이용해서 바로 Document화 시킨다.

XML을 이용한 파싱할때 유용하게 사용될것 같다.

우선 자신의 JDK에 맞는 JSON LIB가 필요하다.
http://json-lib.sourceforge.net/ 여기에서 받아보자 (jdk 1.3용과 jdk 1.5가 있다.)


json이 여기서 받아야 하는 파일이 끝이라고 생각한다면 오산이다.

오류발생 : java.lang.NoClassDefFoundError: net/sf/ezmorph/MorpherRegistry

이것은 EZmorph가 없어서 발생하는 오류이다.
바로 연관 package가 추가로 더 있는 경우에 해당한다.

http://ezmorph.sourceforge.net/ 에서 추가로 다운받자.


최종!!
 > json-lib-1.1-jdk15-javadoc.jar / ezmorph-1.0.2.jar  2개가 있어야 구동이 가능함.


● 간단 sample 소스코드

 public oid test11DataTest () {
  JSONObject jsonObject = new JSONObject() ;
  jsonObject.put ("subject", "001");
  jsonObject.put ("author", "002");
  jsonObject.put ("date", "003");

  System.out.println("neouser ^^ >>>" + jsonObject.toString());
 }





-Dfile.encoding=UTF-8

VM argument에 위에 옵션을 부여해줍니다.
Query 한꺼번에 실행하는것 입니다.


  PoolManager pool = PoolManager.getInstance();
  Connection conn = null;
  PreparedStatement pstmt = null;
   
  try {
   conn = (Connection) pool.getConnection();  
   
pstmt = conn.prepareStatement("delete from neouserTable where name = ?");
   
   for (int i=0; i < daumid.length; i++) {  
    pstmt.setString (1, name[i]);
    pstmt.addBatch();
   }

 
   int results[] = pstmt.executeBatch();  
   returnValue ="true";
   
  } catch (BatchUpdateException e) {
      int rsSuccessCnts[] = e.getUpdateCounts();     //오류  발생 이전의 SQL 문에서 insert된 행 갯수를 배열로 리턴한다.
      for( int i=0; i<rsSuccessCnts.length; i++ ) {
       _logger.debug( i + "번째 쿼리 성공, 해당 쿼리에서 insert된 행 갯수: " + rsSuccessCnts[i] );
      }
      returnValue ="false";     
  } finally { PoolManager.close( pstmt, conn);}


사이트에 접속하신 후에 주소줄에 다음을 입력하시면 해당 페이지의 쿠키를 보실 수 있습니다.

javascript:alert(document.cookie)


간단해 보이지만 디버깅할때 가장 요긴하게 잘 사용하는 방법에 해당한다.


import junit.framework.TestCase;

public class ImsiBeanTest extends TestCase {

    public ImsiBean imsiBean = new imsiBean();
    // 본 test Case를 수행하시기 위해서는 MonthlyStatMgtBean 에 있는 conn =    
    connMgr.getConnection(); 을 주석처리 해야 합니다.
    public void setUp() throws Exception {
        String db_url = "jdbc:oracle:thin:@100.100.100.100:1521:SID";
        String db_user = "USER";
        String db_pwd = "PWD";
        imsiBean.initConnection(db_url ,db_user, db_pwd);
        System.out.println ("codeBean : " +imsiBean );
    }

     public void testInsertStarEvent () {
        System.out.println (" -------- testInsertStarEvent -----------");
         boolean returnBol = imsiBean.insertStarEvent(getimsiRec());
         System.out.println ("test 001 " + returnBol);
    }

     public void testSelectStarEvent () {
        System.out.println (" -------- testSelectStarEvent -----------");
        boolean returnBol = imsiBean.selectStarEvent("");
        System.out.println ("test 002 " + returnBol);
     }

     public imsiRec getimsiRec () {
        ImsiRec imsiRec = new ImsiRec();
        imsiRec.setCust_name ("고영민");
        return imsiRec;
    }
}



private Connection conn= null;

public Connection initConnection (String url, String id, String pwd) {
    try {
         DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
         conn = DriverManager.getConnection(url, id, pwd);
     } catch (Exception e) {
         e.printStackTrace();
     }
     return conn;
}

● tomcat server.xml
--------------------------------------------------------------------
<Context path="/neouser" docBase="neouser"
debug="5" reloadable="false" crossContext="true">
<Resource name="jdbc/SampleDS" auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/SampleDS">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>5</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>

<parameter>
<name>username</name>
<value>sample</value>
</parameter>
<parameter>
<name>password</name>
<value>samplepwd</value>
</parameter>

<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>

<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/sample</value>

 

● ConnectionManager.java
--------------------------------------------------------------------
import java.sql.Connection;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class ConnectionManager {
    protected static final Log logger = LogFactory.getLog(ConnectionManager.class);

    public static Connection getConnection() {
        try {
            Context ctx = new InitialContext();
            // Tomcat Server에서 DataSource를 Lookup
            DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/sampleDS");

            return ds.getConnection();
         } catch (NamingException e) {
              if (logger.isErrorEnabled()) {
                 logger.error(e.getMessage(), e);
             }
             throw new DBNotConnectedException(e.getMessage(), e);
         } catch (SQLException e) {
              if (logger.isErrorEnabled()) {
                 logger.error(e.getMessage(), e);
             }
             throw new DBNotConnectedException(e.getMessage(), e);
         }
     }
}


was의 사용이 이런것을 가능케 하죠.
이런류의 방법도 이제 고전이 되어버렸지만 그래도 유사방법을 만들어 내기기에는
가장 좋은것 같다.


 

package test.jdbc;

import java.sql.*;

public class DriverTest {
    public static void main(String args[]){
    //데이터베이스 접속 연결 정보를 가지고 있는 객체입니다.
    Connection con;

    try{
        //JDBC드라이버를 로딩합니다.
        Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();

        //데이터베이스에 연결을 합니다. Oracle Server IP:Port:SID 계정명 패스워드
        con=DriverManager.getConnection   ("jdbc:oracle:thin:@127.0.0.1:1521:ora9","neouser","neouser");

        System.out.println("데이터 베이스 접속이 성공했습니다.");
    }catch(SQLException ex){
        System.out.println("SQLException:"+ex);
    }catch(Exception ex){
       System.out.println("Exception:"+ex.toString());
    }
  }
}


JDBC TEST입니다.
간단하지만 역시 찾으려들면 잘 안보이는 소스이죠 ^^


 

Random rd = new Random();
rd.nextInt(10);

10까지의 난수를발생시킨다.
이것 외에도

Math.random()* 10 도 방법이지만
이때의 경우 retrun이 double에 해당한다.



public class ArrayCopyMain {
  public static void main( String[] args ) {
    int[] source = new int[] { 5, 4, 6, 9, 7, 9 };
    int[] target = { 100, 200, 300, 400, 500, 600, 700 };

    // source의 2번째 첨자부터 4개를 target의 3번째 첨자부터 복사
    System.arraycopy( source, 2, target, 3, 4 );
    for ( int i = 0; i < target.length; i++ ) {
      System.out.println( "target[" + i + "]: " + target[i] );
    }
  }
}


// output
target[0]: 100
target[1]: 200
target[2]: 300
target[3]: 6
target[4]: 9
target[5]: 7
target[6]: 9

하나의 객체만을 가지고 저렇게 쉽게 복사할 수 있다. (로직한줄도 간과하면 안되요..)
1 2 3 4 5 6 

글 보관함

카운터

Total : / Today : / Yesterday :
get rsstistory!