ORACLE 팁

오라클 쉘상태에서 덤프

exp USER명/DBPASS@db명 file=파일명.dmp log=로그파일명.log

by 나야나 | 2012/05/16 10:30 | 데이터 베이스 | 트랙백 | 덧글(0)

iBatis 팁



1.원인모를 에러

     at gnu.xml.pipeline.ValidationConsumer$ChildrenRecognizer.patchNext(ValidationConsumer.java:1591)


환경

gnujaxp.jar, jfreechart사용중인데 다음과 같은 글 발견. jfreechart는 사용해야 한다....


1. gnujaxp.jar 라이브러리 문제일수 있다. 찾아서 삭제.

2. jfreechart.jar 라이브러리 문제일수 있다. 찾아서 삭제.

3. DTD 주소 확인 www.ibatis.com -> ibatis.apache.org


라고 나오는데.

1번의 경우.....원래 필요없는 라이브러리...같다....그래서 삭제하니...돌아가는듯 -_-;;;


참고사이트


2. 뭔가 xml부근에서 에러날때
패스를 잘 설정해야 한다. unix/win 호환코드
SqlMapConfig 설정시

....중략....
String path = "admin\\intf\\AdminSqlMapConfig.xml";
            path = Util.getNicePath(path);
....중략....

이런식으로 설정한뒤 유틸로 처리

    public static String getNicePath(String source) {
        System.out.println("PATH_SEPARATOR:[" + File.separator+"]");
        //for Unix
        if(File.separator.equals("/")){
            return source.replace("\\", "/");
        }else{
            return source;
        }
    }


SqlMapConfig.xml 은 다음과 같이 패스 설정해도 다 인식한다.
....중략....
<sqlMap resource="/admin/intf/ADMIN_USER.xml" />
....중략....

by 나야나 | 2012/05/15 20:33 | JAVA:PHP | 트랙백 | 덧글(0)

jFreeChart 날짜별 통계표시샘플

http://www.java2s.com/Code/Java/Chart/JFreeChartTimeSeriesDemo12.htm

위 샘플을 약간 변형한 샘플

package admin;


import java.awt.Color;
import java.awt.Font;
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.time.Day;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;

public class chartMaker  {

    /**
     * @param title
     * @param sample    레이블용 스트링 어레이
     * @param list        데이터 ArrayList<Object[DateX[],IntegerY[]] 형태
     * @param width
     * @param height
     */
   public chartMaker( String title,String[] sample,  ArrayList<Object[]>  list, int width, int height) {

//        super(title);

//        XYDataset dataset = createDataset();
      
        XYDataset dataset = createDataset(sample, list);
        JFreeChart chart = createChart(dataset);
        Font labelFont = null;
        labelFont = chart.getTitle().getFont();
        chart.getTitle().setFont(new Font("Malgun Gothic", labelFont.getStyle(), labelFont.getSize()));
        chart.getLegend().setItemFont(new Font("Malgun Gothic", Font.PLAIN, 12));
        XYPlot plot = chart.getXYPlot();
       
        //가로축 제목
        labelFont = plot.getDomainAxis().getLabelFont();
        plot.getDomainAxis().setLabelFont(new Font("Malgun Gothic", labelFont.getStyle(), labelFont.getSize()));
        
        //가로축 값에 대한 레이블
        labelFont = plot.getDomainAxis().getTickLabelFont();
        plot.getDomainAxis().setTickLabelFont(new Font("Arial", labelFont.getStyle(), 12));
        
        //세로축 제목
        labelFont = plot.getRangeAxis().getLabelFont();
        plot.getRangeAxis().setLabelFont(new Font("Malgun Gothic", labelFont.getStyle(), labelFont.getSize()));
        
        //세로축 값에 대한 레이블
        labelFont = plot.getRangeAxis().getTickLabelFont();
        plot.getRangeAxis().setTickLabelFont(new Font("Arial", labelFont.getStyle(), labelFont.getSize()));
        
        FileOutputStream fos = null;
        try{
            fos = new FileOutputStream(new File(Util.getNicePath(admin.intf.AdminConstVars.DOC_ROOT + "/chart/chart.png")));
            // 함수만 변경하면 gif ,png ... 등등 다른 이미지 형식으로 저장 가능
            ChartUtilities.writeChartAsPNG(fos, chart, width, height, true, 100);
        }catch(Exception ig){
            System.out.println(ig.getMessage());
            ig.printStackTrace();
        }finally{
            if(fos != null) try{fos.close();}catch(Exception ig){}
            chart = null;
            dataset = null;
        }

    }
  
   private TimeSeriesCollection createDataset(String[] indexes, ArrayList<Object[]> list) {

       final TimeSeriesCollection dataset = new TimeSeriesCollection();
       dataset.setDomainIsPointsInTime(true);
       for(int i=0;i<list.size();i++){
           Object[] obj = (Object[])list.get(i);
           Date[] x = (Date[])obj[0];
           Integer[] y = (Integer[])obj[1];
           final TimeSeries  series = new TimeSeries (indexes[i], Day.class);
//           SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
           for(int j=0; j<x.length; j++){
                   series.add(new Day( x[j].getDate(), x[j].getMonth()+1, x[j].getYear()+1900), y[j]);
           }
           dataset.addSeries(series);
       }
       return dataset;
   }
  
   /**
    * Creates a chart.
    *
    * @param dataset  the data for the chart.
    *
    * @return a chart.
    */
   private JFreeChart createChart(final XYDataset dataset) {
      
       // create the chart...
       final JFreeChart chart = ChartFactory.createTimeSeriesChart(
           "",      // chart title
           "조회일",                      // x axis label
           "발생건수",                      // y axis label
           dataset,                  // data
           true,                     // include legend
           true,                     // tooltips
           false                     // urls
       );
       // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
       chart.setBackgroundPaint(Color.white);

       // get a reference to the plot for further customisation...
       final XYPlot plot = chart.getXYPlot();
       plot.setBackgroundPaint(Color.lightGray);
   //    plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0));
       plot.setDomainGridlinePaint(Color.white);
       plot.setRangeGridlinePaint(Color.white);
      
       final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
       renderer.setSeriesLinesVisible(0, false);
       renderer.setSeriesShapesVisible(1, false);
       plot.setRenderer(renderer);

       // change the auto tick unit selection to integer units only...
       final DateAxis axis = (DateAxis) plot.getDomainAxis();
       axis.setDateFormatOverride(new SimpleDateFormat("MM/dd"));
       // OPTIONAL CUSTOMISATION COMPLETED.
              
       return chart;
      
   }
}

by 나야나 | 2012/05/15 20:24 | JAVA:PHP | 트랙백 | 덧글(0)

JSTL 팁

날짜포맷 변경 샘플

0. 다음 태그를 선언해 사용준비
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>  코어
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 포맷 변경용
서블릿/jsp에서 데이터를 세팅한다

1. 데이터를 세팅(예제)
a. 자바로 세팅
request.setAttribute("fromDate" ,format.parse(fromDate)); // date타입으로 선언
b. 태그로 세팅
<c:set var="fromDate"    value="<%=fromDate%>" />

2.템플리트엔진 JSTL에서 사용
a. String형으로 사용시에는 Date형으로 한번 파싱후 b. 를 사용한다.pattern은 String의 패턴을 입력한다.


b.Date형을 이용할때는 바로 사용할 수 있다



by 나야나 | 2012/05/15 20:17 | JAVA:PHP | 트랙백 | 덧글(0)

tomcat7에서 JNDI형식 데이터 베이스 연결(메모)

<blockquote>
  <GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
        <!-- jdbc 셋팅 -->
     <Resource auth="Container" defaultAutoCommit="false" driverClassName="oracle.jdbc.OracleDriver" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" initialSize="10" maxActive="20" maxWait="10000" minIdle="10" name="jdbc/database명" password="패스워드" type="javax.sql.DataSource" url="jdbc:oracle:thin:@데이터베이스ip:1521/database명" username="유저명" validationQuery="SELECT SYSDATE FROM DUAL"/>
    <!-- Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase"/ -->
  </GlobalNamingResources>

...............................
 <Context docBase="sample" path="/sample" reloadable="true" source="org.eclipse.jst.jee.server:sample">
        <ResourceLink global="name속성을 저는다" name="jdbc/iisdb" type="javax.sql.DataSource"/>
      </Context>

</blockquote>

by 나야나 | 2012/05/10 09:26 | 트랙백 | 덧글(0)

◀ 이전 페이지          다음 페이지 ▶