import javax.sql.DataSource;

import org.apache.ibatis.session.ExecutorType;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

@Configuration
@PropertySource("classpath:/application.properties")
public class DatasourceConfiguration {
	@Autowired
	private ApplicationContext applicationContext;
	
	@Bean
	@ConfigurationProperties(prefix="spring.datasource.hikari")
	public HikariConfig hikariConfig() {
		return new HikariConfig();
	}
	
	@Bean
	public DataSource dataSource() throws Exception {
		DataSource dataSource = new HikariDataSource(hikariConfig());
		return dataSource;
	}
	
	@Bean
	public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
		SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
		sqlSessionFactoryBean.setDataSource(dataSource);
		
		sqlSessionFactoryBean.setConfigLocation(applicationContext.getResource("classpath:mybatis-config.xml"));
		sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:/mapper/**/*Mapper.xml"));
		return sqlSessionFactoryBean.getObject();
	}

	
	@Bean(name="batchSqlSessionTemplate") 
	public SqlSessionTemplate batchSqlSessionTemplate(SqlSessionFactory sqlSessionFactory) { 
		 return new SqlSessionTemplate(sqlSessionFactory, ExecutorType.BATCH); 
	}
	
	@Bean(name="sqlSessionTemplate") 
	public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
		return new SqlSessionTemplate(sqlSessionFactory);
	}
	
	
	/**
	 * 트렌젝션 관리
	 * @param dataSource
	 * @return
	 */
	@Bean
	public PlatformTransactionManager transactionManager(DataSource dataSource) {
		return new DataSourceTransactionManager(dataSource);
	}
	

	
}

 

 

 

 

아래와같이 적용

	/**
	 * DB컨넥션 후 Connection객체를 반환한다.
	 * @return
	 * @throws SQLException
	 */
	private Connection getConnection() throws Exception{

		ApplicationContext ctx = ApplicationContextAwareExtends.getApplicationContext();
		DataSource dataSource =  ctx.getBean(DatasourceConfiguration.class).dataSource();
		
		return dataSource.getConnection();
	}

1. 개요

- iReport란?

iReportJasperReports 라이브러리를 통해 모든 종류의 Java 응용에 사용할 수 있고, 복잡한 보고서를 생성하는 오픈 소스 프로그램이다. 이 iReport는 100% Java로 구현됐으며, GNU (General Public License)에서 소스 코드를 배포한다.

 

iReport는 그래픽 인터페이스를 통해 어떤 종류의 복잡한 보고서도 간단하고 빠르게 생성할 수 있고, JasperReportsXML 문법을 공들여 배우지 않아도 개발 시간을 단축해 개발자에게 큰 도움을 준다.

 

즉,  iReportJasperReports를 위한 Reports Design Tool이라고 할 수 있다.

 

다운로드 서비스는 아래 사이트에서 이용할 수 있다.(무료

https://sourceforge.net/projects/ireport/

 

iReport-Designer for JasperReports

Download iReport-Designer for JasperReports for free. NOTE: iReport/Jaspersoft Studio Support Announcement: As of version 5.5.0, Jaspersoft Studio will be the official design client for JasperReports. iReport will remain as a supported product in maintenan

sourceforge.net

 

2. iReport 설치 및 실행

    a. 다운로드한 파일을 압축을 해제 

    b. 압축을 해제 한 디렉터리 하위의 bin 폴더의 ireport.exe 파일을 실행

 

 

3. iReport UI 설명

[iReport UI Layout

4. iReport 환경설정

    4-1. Class path 설정

        Tools의 Options window를 오픈하여 아래 그림과 같이 설정합니다. 

    

    4-2. Compile 경로 설정

        iReport는 컴파일된 .jasper 파일을 사용하여 서비스가 제공됩니다. 따라서 Complie path를 설정하여 서비스되는

        시스템에 자동으로 저장될 수 있도록 설정하는 편이 업무에 도움이 됩니다.

컴파일 된 jasper파일 경로 설정

    4-3. Database 연동

        iReport는 DB와 직접 통신하여 데이터를 질의하고 출력 할 수 있습니다. 해당 기능을 사용하기 위해서 먼저 JDBC

        연결 설정을 수행합니다.

 

이상으로 iReport 설정 방법을 알아보았습니다. 

 

+ Recent posts