SQL일괄처리

2008/12/09 16:21 / JAVA관련
 try
    {
     StringBuffer sbuf = new StringBuffer ();
     
     sbuf.append ("INSERT INTO ARRAY_PROCEDURE ")
      .append (" (COL_A, COL_B, COL_C) ")
      .append ("VALUES ")
      .append (" (?, ?, ?) ");
   
     pstmt = conn.prepareStatement(sbuf.toString ());
     
     for (int i = 0; i < inDS.getRowCount(); i ++)
     {
           
      pstmt.setString (1, inDS.getColumnAsString(i, "COL_A"));
      pstmt.setString (2, inDS.getColumnAsString(i, "COL_B"));
      pstmt.setString (3, inDS.getColumnAsString(i, "COL_C"));
     
      pstmt.addBatch();
     
      if ((i % 500) == 0)
      {
       pstmt.executeBatch();
      }
     }
     pstmt.executeBatch();
    }
    catch (Exception e)
    {
     conn.rollback();
     setErrMsg("-1", e.toString());
    }
    conn.commit();
2008/12/09 16:21 2008/12/09 16:21
보이수(유동주) 이 작성.

Trackback URL : http://www.ishappy.net/tc/trackback/28


당신의 의견을 작성해 주세요.

  1. Comment RSS : http://www.ishappy.net/tc/rss/comment/28
  2. 최준현 2009/11/30 22:34  편집/삭제  댓글 작성  댓글 주소

    반갑다~ 잘지내고 있으신가?
    인터넷에 자바스크립트 검색하다가 들렀네..
    2009년에 작성한게 없는걸 보니 많이 바쁜가 봐~??
    잘지내고~ 언제 연락한번 해주셔~

  3. 보이수(유동주) 2010/01/08 12:56  편집/삭제  댓글 작성  댓글 주소

    오랜만이네.... 요즘 여기 잘 안들어오다보니까..답글 남긴걸 이제 봤다..^^
    잘 지내고 있제...??
    자주 글 남기려고 하는데 잘 안되네...ㅋㅋㅋ

[로그인][오픈아이디란?]
Java 에서 "."을 Delimiter 로 사용하는 경우에...
일반적인 사용법으로 사용하면 원하는 결과를 얻을수가 없다.
"."를 사용하는 경우에는 "[.]"로 사용하여야 정상젹과를 얻을 수 있다.

String tmp = "111.222.333.444";
String [] strarr = tmp.split ("[.]");
2008/01/31 11:48 2008/01/31 11:48
보이수(유동주) 이 작성.

Trackback URL : http://www.ishappy.net/tc/trackback/22


당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]

Tomcat을 사용하는 경우에
폼 파라미터로 값을 넘기게 되면 한글이 깨져서 넘어간다.
이럴때 파라미터를 받는 파일에서

request.setCharacterEncoding ("euc-kr");

이라는 문장을 앞부분에 추가해주면 한글처리가 정상적으로 수행된다.
<%
    request.setCharacterEncoding ("euc-kr");
    String name = request.getParameter ("name");
%>
2007/11/27 21:33 2007/11/27 21:33
보이수(유동주) 이 작성.
TAGS , ,

Trackback URL : http://www.ishappy.net/tc/trackback/21


당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]

JAVA로 XML 생성

2007/06/13 18:01 / JAVA관련
매번 XML처리를 할때마다... 여기 저기서 찾아서 하기 귀찮아서 정리해야겠다...ㅋㅋ

우선 XML을 생성하는 방법은 여러가지가 있는데..

오늘은 돔트리를 이용하여 XML구조를 만들고
Transformer객체를 이용하여 XML로 변환하려고 한다.

우선  XML 구조를 만들기 위해서는 XML의 최상위 구조인
org.w3c.dom.Document객체를 만들어야한다.
Document 객체는 XML의 기본 구조라고 보면된다. 쉽게 얘기하면 그림을 그리기 위한 종이 정도로 보면 될까..??
Document doc = null;
DocumentBuilderFactory factory = null;
factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
doc = builder.newDocument();

Document객체를 만들었으면 그 아래 단계에 위치할 Element를 만들어야 한다.
Element를 만들기 위해서는 createElement라는 메서드를 사용한다.
만들어진 Element 를 최상위인 Document아래에 추가한다
Element prj_list = doc.createElement("prj_list");
doc.appendChild(prj_list);

위와같이 하게 되면
XML의 전체 구조위에 root element가 생성된다.
root element 아래에 하위 element를 추가하려면 동일한 방법으로 Element를 생성하여 상위 element아래에 추가하면된다.
Element prj_info = doc.createElement("prj_info");
prj_list.appendChild(prj_info);

Element에 값을 넣기 위해서는 Text객체를 생성하여 입력하면 된다.
Element element = doc.createElement("test_element");
Text textNode = doc.createTextNode("테스트 입니다");
prj_info.appendChild(textNode);

이런식으로 XML 구조를 만들었다면 실제로 XML파일로 저장하거나 XML을 화면에 표시하거나 하기 위해서는 XML문자열로 변환하는 과정이 필요하다.
TransformerFactory tr_factory = TransformerFactory.newInstance();
String xmlStr = "";    
try
{
    StringWriter sw = new StringWriter();
    Properties output = new Properties();
    output.setProperty(OutputKeys.INDENT, "yes");
    output.setProperty(OutputKeys.ENCODING, "EUC-KR");
    Transformer transformer = tr_factory.newTransformer();
    transformer.setOutputProperties(output);
    transformer.transform(new DOMSource(doc), new StreamResult(sw));
    xmlStr = sw.getBuffer ().toString ();
}
catch (Exception e)
{
    e.printStackTrace();
}

이렇게 만들어진 문자열을 파일로 저장하거나, 출력하면 된다.
2007/06/13 18:01 2007/06/13 18:01
보이수(유동주) 이 작성.
TAGS ,

Trackback URL : http://www.ishappy.net/tc/trackback/17


당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]

아래에 있는 파일을 입출력 하는 샘플코드를 수정한 내용이다.
단지 BufferedInputStream, BufferedOutputStream을 사용하는 것많으로도 많은 속도 향상을 가져온다.
그리고 또한 파일 입출력시에 int값을 가지고 조작하는것 보다.. byte배열을 가지고 처리하는것이 더 Performance향상을 가져온다.

[파일을 읽는 예제코드]
FileInputStream fis = null;
byte [] filebody = null;
ResourceBundle prop = null;

try
{
  // properties 파일을 읽어오기 위한 부분
  prop = ResourceBundle.getBundle("winitech");
  File f = new File (prop.getString ("BBS_FILE_PATH") + "test.jpg");

  // 읽으려고 하는 파일이 존재하는지 확인
  // 필요하다면 f.isFile()도 체크한다.
  if (!f.exists())
{
   System.out.println ("읽을 파일이 없습니다");
  }
   
  fis = new FileInputStream (f);
  // 단지 BufferedInputStream을 사용하는 것 만으로도 꽤 많은 속도 향상을 가져올수 있다.
  BufferedInputStream bis = new BufferedInputStream (fis);

  //  파일을 읽기 위해서 생성된 FileInputStream으로 부타 읽을수 있는 크기를 가져온다.
// 크기만큼 byte 배열을 생성한다.
  filebody = new byte [fis.available()];
  // 생성된 byte배열의 크기만큼 읽어서 저장한다.
  // (실제 읽을 파일의 크기만큼 배열을 선언했기때문에 파일 전체를 다 읽어서 저장한다.)
  int len = fis.read(filebody, 0, filebody.length);
}
catch (Exception e)
{
  System.out.println (e.toString());
}

[파일을 출력하는 예제 코드]
byte [] filebody = null;
FileOutputStream fout = null;
ResourceBundle prop = null;

try
{
  prop = ResourceBundle.getBundle("winitech");

  // 위(파일입력) 예제와 같이 File객체를 선언해서 해도되고 ,
  // FileOutputStream 생성자에 파일 경로를 바로 지정해도된다.
  fout = new FileOutputStream (prop.getString ("BBS_FILE_PATH") + "test.jpg");
  // 단지 BufferedOutputStream을 사용하는 것 만으로도 꽤 많은 속도 향상을 가져올수 있다.
BufferedOutputStream bos = new BufferedOutputStream (fout);

  // byte 배열의 내용을 한번에 파일로 저장한다.
  bos.write(filebody, 0, filebody.length);
  bos.flush ();
   
  fout.close();
}
catch (Exception e)
{
System.out.println ("파일 저장중에 오류가  발생했습니다." + e.toString ());
}

2007/01/10 15:47 2007/01/10 15:47
보이수(유동주) 이 작성.

Trackback URL : http://www.ishappy.net/tc/trackback/12

  1. 파일 입출력 예제

    Tracked from 유동주의 잡다한 블로그 2007/01/10 15:55 Löschung

    파일을 입출력 하는 샘플코드 이다..[파일을 읽는 예제코드]FileInputStream fis = null;byte [] filebody = null;ResourceBundle prop = null;try{ // properties 파일을 읽어오기 위한 부분 prop = ResourceBundle.getBundle("winitec..


당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]

파일 입출력 예제

2007/01/06 17:50 / JAVA관련

파일을 입출력 하는 샘플코드 이다..

[파일을 읽는 예제코드]
FileInputStream fis = null;
byte [] filebody = null;
ResourceBundle prop = null;

try
{
  // properties 파일을 읽어오기 위한 부분
  prop = ResourceBundle.getBundle("winitech");
  File f = new File (prop.getString ("BBS_FILE_PATH") + "test.jpg");

  // 읽으려고 하는 파일이 존재하는지 확인
  // 필요하다면 f.isFile()도 체크한다.
  if (!f.exists())
{
   System.out.println ("읽을 파일이 없습니다");
  }
   
  fis = new FileInputStream (f);

  //  파일을 읽기 위해서 생성된 FileInputStream으로 부타 읽을수 있는 크기를 가져온다.
// 크기만큼 byte 배열을 생성한다.
  filebody = new byte [fis.available()];
  // 생성된 byte배열의 크기만큼 읽어서 저장한다.
  // (실제 읽을 파일의 크기만큼 배열을 선언했기때문에 파일 전체를 다 읽어서 저장한다.)
  int len = fis.read(filebody, 0, filebody.length);
}
catch (Exception e)
{
  System.out.println (e.toString());
}

[파일을 출력하는 예제 코드]
byte [] filebody = null;
FileOutputStream fout = null;
ResourceBundle prop = null;

try
{
  prop = ResourceBundle.getBundle("winitech");

  // 위(파일입력) 예제와 같이 File객체를 선언해서 해도되고 ,
  // FileOutputStream 생성자에 파일 경로를 바로 지정해도된다.
  fout = new FileOutputStream (prop.getString ("BBS_FILE_PATH") + "test.jpg");
  // 여기서는 한번에 읽어서 byte 배열에 저장한다. (
  fout.write(filebody);
  fout.flush ();
   
  fout.close();
}
catch (Exception e)
{
System.out.println ("파일 저장중에 오류가  발생했습니다." + e.toString ());
}

2007/01/06 17:50 2007/01/06 17:50
보이수(유동주) 이 작성.

Trackback URL : http://www.ishappy.net/tc/trackback/11

  1. 파일 입출력 속도 향상 (BufferedInputStream/BufferedOutputStream) 사용

    Tracked from 유동주의 잡다한 블로그 2007/01/10 16:07 Löschung

    아래에 있는 파일을 입출력 하는 샘플코드를 수정한 내용이다.단지 BufferedInputStream, BufferedOutputStream을 사용하는 것많으로도 많은 속도 향상을 가져온다.그리고 또한 파일 입출력시에 int값을 ..


당신의 의견을 작성해 주세요.

[로그인][오픈아이디란?]