[Java] google-gson

Java/Java 2012.06.22 15:54
posted by 뚱2

[Jsp] Java EL 개요

Java/Jsp 2012.02.22 13:24
iBatis : ibatis-sqlmap-2.3.4.726.jar
Oracle : 11g

1. select의 경우 resultMap을 만들어준다.
    
    
        
       

    
      


2. insert의 경우 insert into ~~~ select는 안되고 insert into values를 사용해야 한다.
    
    /* ProgramID=updateChangeSeqApprovalOnlyContent */
    UPDATE CHANGESEQ
       SET CONTENT     = #content:CLOB#
    



posted by 뚱2
참조 : http://jakarta.apache.org/log4j

'Java > log4j / logback' 카테고리의 다른 글

[Logback] Mapped Diagnostic Context  (0) 2014.06.05
[Logback] Anyframe Logback plugin  (0) 2014.06.05
[logback] log4j -> logback 마이그레이션  (0) 2014.05.31
[slf4j] Simple Logging Facade for Java  (0) 2014.05.31
[log4j] log4j 설정  (0) 2012.07.05
[Log4j] Log4j Homepage Link  (0) 2012.02.16
posted by 뚱2
링크 : http://ultteky.egloos.com/10496535

'Java > SpringFramework' 카테고리의 다른 글

[Spring] Spring Import 시 classpath:와 classpath*: 의 차이점  (0) 2012.06.23
[Spring] log4j 설정  (0) 2012.06.22
[Spring] Bean Order Property  (0) 2012.06.22
[Spring] 환경설정  (0) 2012.06.19
[Spring] 설치 방법  (0) 2012.06.18
[Spring] Java ModelAndView  (0) 2012.02.09
posted by 뚱2

[Jsp] Java Custom Tag

Java/Jsp 2012.02.09 14:04

[Java] Java Dynamic method call

Java/Java 2012.02.09 14:03
링크 : http://www.okjsp.pe.kr/seq/66895


'Java > Java' 카테고리의 다른 글

[Java] DateFormat  (0) 2012.07.04
[Java] google-gson  (0) 2012.06.22
[Java] Java Dynamic method call  (0) 2012.02.09
[Java] map sort  (0) 2012.02.02
[Java] instanceof 연산자  (0) 2011.11.28
[Java] 날짜표시 YYMMDDHH24MI  (0) 2011.11.21
posted by 뚱2

[Java] map sort

Java/Java 2012.02.02 12:12
링크 : http://www.egovframe.org/Main.do


'Java > egovFrame' 카테고리의 다른 글

[egovFrame] @Aspect 예제  (0) 2015.07.21
[egovFrame] 전자정부 표준프레임워크  (0) 2012.01.26
posted by 뚱2

[Java] instanceof 연산자

Java/Java 2011.11.28 15:40
특정 객체가 비교하는 객체의 객체 상속도에 맞는지 확인하는 연산자
말은 어려운데 실제 보면은 간단하다.

public class AClass {
}

public class BClass extends AClass {
}

AClass aIns = new AClass();
BClass bIns = new BClass();

// 참
if ( aIns instanceof AClass ) {}

// 참
if ( bIns instanceof AClass ) {}

// 거짓
if ( aIns instanceof BClass ) {}

// 참
if ( bIns instanceof BClass ) {}

결국 검사할려는 인스턴스가 비교 객체의 자식 계통도에 포함되어 있으면 참이고
부모 계통도에 포함되어 있으면 거짓이다.
물론 상속계통도에 연관이 없는건 당연히 거짓이다.

'Java > Java' 카테고리의 다른 글

[Java] Java Dynamic method call  (0) 2012.02.09
[Java] map sort  (0) 2012.02.02
[Java] instanceof 연산자  (0) 2011.11.28
[Java] 날짜표시 YYMMDDHH24MI  (0) 2011.11.21
[Java] Java Annotation (어노테이션) 관련자료  (0) 2011.11.08
[Java] JDK와 JRE  (0) 2011.04.27
posted by 뚱2


//import java.text.*;
//import java.util.*;

// YYYYMMDDHH24MI
Date d = Calendar.getInstance().getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String startDate = sdf.format(d);


'Java > Java' 카테고리의 다른 글

[Java] Java Dynamic method call  (0) 2012.02.09
[Java] map sort  (0) 2012.02.02
[Java] instanceof 연산자  (0) 2011.11.28
[Java] 날짜표시 YYMMDDHH24MI  (0) 2011.11.21
[Java] Java Annotation (어노테이션) 관련자료  (0) 2011.11.08
[Java] JDK와 JRE  (0) 2011.04.27
posted by 뚱2

배열, 리스트, 컬렉션, Map등의 순환처리를 할수 있다.

// java 코드

map.put("key1", "value1");

map.put("key2", "value2");



// JSTL 코드

<c:foreach var="item" items="${map}">

    ${item.key} : ${item.value}

</c:foreach>


posted by 뚱2




import java.io.*

import java.awt.Font

import java.awt.Color

improt java.awt.GradientPaint

       

import org.jfree.chart.ChartFactory

import org.jfree.chart.ChartPanel

import org.jfree.chart.JFreeChart

import org.jfree.chart.axis.NumberAxis

import org.jfree.chart.plot.PlotOrientation

import org.jfree.chart.plot.XYPlot

import org.jfree.chart.ChartRenderingInfo

import org.jfree.chart.ChartUtilities

import org.jfree.chart.plot.CategoryPlot

       

import org.jfree.data.xy.MatrixSeriesCollection>

import org.jfree.data.xy.NormalizedMatrixSeries

import org.jfree.ui.ApplicationFrame

import org.jfree.ui.RefineryUtilities


  final int SIZE = 20;

  final MatrixSeriesCollection dataset = new MatrixSeriesCollection();

  

  // value, x, y

  int[][] itmes = {

       {200, 3 , 12}

      ,{250, 8 , 5 }

      ,{80 , 14, 16}

      ,{50 , 18, 4 }

  };

  

  int nSum = 0;

  for (int i = 0; i < itmes.length; i++ ) {

    nSum += itmes[i][0];

  }

  

  for (int i = 0; i < itmes.length; i++) {

    NormalizedMatrixSeries newSeries =

              new NormalizedMatrixSeries("대카테고리" + (i+1), SIZE, SIZE);

      newSeries.update(itmes[i][2], itmes[i][1], itmes[i][0]);

    newSeries.setScaleFactor(SIZE*((float)itmes[i][0]/nSum));

    

    dataset.addSeries(newSeries);

  }

  

  final JFreeChart chart = ChartFactory.createBubbleChart(

      "Bubble Chart"

      , "X축"

      , "Y축"

      , dataset

      , PlotOrientation.VERTICAL

      , true

      , true

      , false);

  

  chart.setBackgroundPaint(Color.white);

  chart.setTitle("제목");

  

  // 제목

  chart.getTitle().setFont(new Font("돋움", Font.BOLD, 15));

  // 범례

  chart.getLegend().setItemFont(new Font("돋움", Font.PLAIN, 12));


  final XYPlot plot = chart.getXYPlot();

  

  Font font = plot.getDomainAxis().getLabelFont();

  // X축 라벨

  plot.getDomainAxis().setLabelFont(new Font("돋움", font.getStyle(), font.getSize()));

  // X축 도메인

  plot.getDomainAxis().setTickLabelFont(new Font("돋움", font.getStyle(), 10));

  

  font = plot.getRangeAxis().getLabelFont();

  // Y축 라벨

  plot.getRangeAxis().setLabelFont(new Font("돋움", font.getStyle(), font.getSize()));

  // Y축 범위

  plot.getRangeAxis().setTickLabelFont(new Font("돋움", font.getStyle(), 10));

  

  //final XYPlot plot = chart.getXYPlot();

  plot.setForegroundAlpha(0.5f);

  

  final NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis();

  //domainAxis.setLowerBound(-0.5);

  domainAxis.setLowerBound(0);

  

  final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();

  

  // rangeAxis.setInverted(true);  // uncoment to reproduce a bug in jFreeChart

  //rangeAxis.setLowerBound(-0.5);

  rangeAxis.setLowerBound(0);

  

  // 파일 저장

  ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());

  String fileName= "C:/" + "bubbleChart.jpg";

  ChartUtilities.saveChartAsJPEG(new File(fileName),chart,600,400,info);


posted by 뚱2


  import org.jfree.chart.ChartFactory

  import org.jfree.chart.ChartFrame

  import org.jfree.chart.ChartUtilities

  import org.jfree.chart.JFreeChart

  import org.jfree.chart.plot.PlotOrientation

  import org.jfree.chart.plot.CategoryPlot

  import org.jfree.chart.ChartRenderingInfo

  import org.jfree.chart.entity.StandardEntityCollection

  import org.jfree.data.xy.*

  import org.jfree.data.category.DefaultCategoryDataset

  // 데이타셋

  DefaultCategoryDataset dataset = new DefaultCategoryDataset();

  

  int[] nCatSum = new int[]{0, 0, 0, 0};

  

  for (int i=0; i < 12; i++) {

    for (int j=0; j < nCatSum.length; j++) {

      dataset.addValue(nCatSum[j], "카테고리"+(j+1), ""+(i+1)+"월");

      nCatSum[j] += i+j;

    }

  }


  // 차트

  JFreeChart chart = ChartFactory.createStackedBarChart(

      "Bar Chart"

      , "X축"

      , "Y축"

      , dataset

      , PlotOrientation.VERTICAL

      , true

      , true

      , false);

  

  chart.setBackgroundPaint(java.awt.Color.white);

  chart.setTitle("제목");

  

  ////////////////////////////////////////////////////////////////

  // 한글 깨짐 해결

  

  // 제목

  chart.getTitle().setFont(new Font("돋움", Font.BOLD, 15));

  // 범례

  chart.getLegend().setItemFont(new Font("돋움", Font.PLAIN, 10));

  

  CategoryPlot plot = chart.getCategoryPlot();

  

  Font font = plot.getDomainAxis().getLabelFont();

  // X축 라벨

  plot.getDomainAxis().setLabelFont(new Font("돋움", font.getStyle(), font.getSize()));

  // X축 도메인

  plot.getDomainAxis().setTickLabelFont(new Font("돋움", font.getStyle(), 10));

  

  font = plot.getRangeAxis().getLabelFont();

  // Y축 라벨

  plot.getRangeAxis().setLabelFont(new Font("돋움", font.getStyle(), font.getSize()));

  // Y축 범위

  plot.getRangeAxis().setTickLabelFont(new Font("돋움", font.getStyle(), 10));


  

  // 파일 저장

  ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());

  String fileName= "C:/" + "stactedChart.jpg";

  ChartUtilities.saveChartAsJPEG(new File(fileName),chart,800,450,info);


posted by 뚱2

[DWR] DWR (Direct Web Remoting)

Java/DWR 2011.08.25 10:20
이미지 출처 : http://cafe.naver.com/ccjmaster.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=991&

기존의 스크립트성 노가다에서 벗어나 좀 더 편하게 사용할 수 있는 자바프레임웍

 

 


'Java > DWR' 카테고리의 다른 글

[DWR] DWR (Direct Web Remoting)  (0) 2011.08.25
posted by 뚱2
application 객체에서 3가지 메서드를 제공한다.

1. getRealPath(String path) : String -> 물리적 경로에 대한 웹상의 경로를 리턴
2. getResource(String path) : java.net.URL -> 물리적 경로에 대한 URL객체를 리턴
3. getResourceAsStream(String path) : java.io.InputStream -> 물리적 경로에 대한 InputStream 을 리턴
 
posted by 뚱2

[Java] JDK와 JRE

Java/Java 2011.04.27 15:17

다운로드 사이트 : http://download.oracle.com/javase/6/docs/


JDK (Java Developement Kit)
- 자바를 개발하기 위한 도구의 모음
참고 : http://terms.co.kr/JDK.htm

JRE (Java Runtime Environment) 
- 자바를 구동하기 위한 환경 모음 

일반적인 자바 프로그램을 실행시킬려면 JRE만 있으면 되고
개발까지 하려면 JDK도 필요합니다. 

'Java > Java' 카테고리의 다른 글

[Java] Java Dynamic method call  (0) 2012.02.09
[Java] map sort  (0) 2012.02.02
[Java] instanceof 연산자  (0) 2011.11.28
[Java] 날짜표시 YYMMDDHH24MI  (0) 2011.11.21
[Java] Java Annotation (어노테이션) 관련자료  (0) 2011.11.08
[Java] JDK와 JRE  (0) 2011.04.27
posted by 뚱2

둘의 차이가 비슷하지만 미묘한 차이가 있는 것 같습니다.

* <%@ page include %> 이하 1
* <jsp:include> 이하 2

둘다 다른 파일을 인클루드 해서 합치는건 맞지만 1번은 컴파일 단계에서 합쳐져서 컴파일 됩니다.
그러니까 C로 말하면 #include 와 같은 기능입니다.
2번은 인클루드 하는건 맞지만 출력버퍼에 내용을 합칩니다.
결국 C로 이야기 하면은 C 파일을 컴파일 하면은 페이지 별로 .obj 파일이 생성하는데 그 다음 링크단계에서
합쳐서 하나의 모듈을 완성하는 것과 비슷한 단계입니다.
글을 적고 보니까 더 헷갈리는데

1번은 컴파일 전에 소스코드단에서 합쳐지기때문에 변수 공유가 가능하고
2번은 컴파일 후에 C의 링크(?) 단계와 비슷하게 합쳐지기 때문에 변수 공유를 할려면 영역 관련된 객체
(Request, Session, Application을 사용해서 공유하거나, <jap:param>을 사용해서 파라미터를 추가)
* 2011-05-30 : 링크단계보다 런타임시 호출된 결과를 호출한 페이지에서 합치는 것이라고 보는게 맞을 것 같습니다.

ps. 공부하는 단계에 정리하면서 글을 적다 보니 잘못알고 있는 내용이 있을수도 있습니다.
혹 잘못된 내용이라면 바른 내용을 알려주시면 정정하겠습니다.

posted by 뚱2

[JSP] UrlEncoding 하기

Java/Jsp 2011.04.25 12:05

Jsp 페이지에서 내부적으로 리다이렉트 하는 경우가 발생하면
URL 인코딩을 해서 글자가 깨지는 경우가 발생하는데 그럴때 인코딩을 하면된다. 

클래스
java.net.URLEncoder

Method Summary
static String encode(String s) 
          Deprecated. The resulting string may vary depending on the platform's default encoding. Instead, use the encode(String,String) method to specify the encoding.
static String encode(String s, String enc) 
          Translates a string into application/x-www-form-urlencoded format using a specific encoding scheme.
 

posted by 뚱2

[JSP] Procedure Call

Java/Jsp 2011.03.17 09:35
업무용 프로그램에서 많이 사용하는 프로시져
저희쪽 환경은 Jsp + Tomcat + Oracle 입니다.

// 드라이버 로드
try {
    Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e1) {
    e1.printStackTrace(pw);
}

// 연결 클래스 변수 선언
Connection 		  conn  = null;
CallableStatement cstat = null;
ResultSet         rs    = null;
try {
    conn = DriverManager.getConnection("jdbc:oracle:thin:@아이피:포트:Tnsname", "아이디", "비밀번호");

    // 프로시져 콜
    CallableStatement cstat = conn.prepareCall("{CALL 패키지명.프로시져명(?)}");
    // output cursor로 데이터를 받아온다.    
    cstat.registerOutParameter(1, OracleTypes.CURSOR);
    cstat.execute();

    rs = (ResultSet)cstat.getObject(1);
    
    if ( rs != null )
    {
        ResultSetMetaData rsmeta = rs.getMetaData();
        int nColumn = rsmeta.getColumnCount();
        out.println("");
        out.println("");
        for (int i = 0; i <= nColumn; i++)
        {
            if ( i == 0 )
                out.println(" 번호 ");
            else
            {
                String strColumnName = rsmeta.getColumnName(i);
                out.println(strColumnName);					
            }
        }//for (int i = 0; i <= nColumn; i++)
        out.println("");
        
        int nRow = 1;
        while (rs.next())
        {
            out.println("");
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i <= nColumn; i++)
            {
                if ( i == 0 )
                    sb.append(  Integer.toString(nRow) );
                else
                    sb.append( rs.getString(i) );
            }
            out.println(sb.toString());
            out.println("");
            nRow++;
        }//while (rs.next())
        
        out.println("");
    }//if ( rs != null )
} catch (SQLException e) {
    e.printStackTrace(pw);
} finally {
    try {rs.close();   } catch (SQLException e) {}
    try {cstat.close();} catch (SQLException e) {}
    try {conn.close(); } catch (SQLException e) {}
}
posted by 뚱2