hsqldb를 이용해서 프로그램 작업을 하는 경우 아래와 같이 applicationContext.xml에 설정을 추가 하면 됩니다.
메모리 디비를 사용하는 경우
<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
<property name="url" value="jdbc:hsqldb:mem:test" />
<property name="username" value="sa" />
<property name="password" value="" />
</bean>
메모리+파일시스템 을 같이 사용하는경우
<bean id="hsqldb" class="extra.HsqlDbSys" init-method="start">
<constructor-arg>
<value>
server.database.0 = file:C:/workspace/sampleSpring/WebContent/WEB-INF/hsqldb/test
server.dbname.0 = test
server.remote_open = true
server.port = 9002
hsqldb.reconfig_logging = false
</value>
</constructor-arg>
</bean>
<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" id="dataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
<property name="url" value="jdbc:hsqldb:hsql://localhost:9002/test" />
<property name="username" value="sa" />
<property name="password" value="" />
</bean>
이때 start를 하기 위해서 HsqlDbSy 클래스를 만들어서 사용하게 됩니다.
package extra; import java.io.IOException; import java.util.Properties; import org.hsqldb.Server; import org.hsqldb.persist.HsqlProperties; import org.hsqldb.server.ServerAcl.AclFormatException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.SmartLifecycle; public class HsqlDbSys implements SmartLifecycle{ private final Logger logger = LoggerFactory.getLogger(this.getClass()); private HsqlProperties properties; private Server server; private boolean running = false; public HsqlDbSys(){} public HsqlDbSys(Properties props) { properties = new HsqlProperties(props); } public boolean isRunning() { if(server != null) server.checkRunning(running); return running; } public void start() { if(server == null) { logger.info("디비 시작"); server = new Server(); try { server.setProperties(properties); server.start(); running = true; } catch(AclFormatException afe) { logger.error("start hsqldb", afe); } catch (IOException e) { logger.error("start hsqldb", e); } } } public void stop() { logger.info("디비 종료"); if(server != null) { server.stop(); running = false; } } public int getPhase() { return 0; } public boolean isAutoStartup() { return true; } public void stop(Runnable runnable) { stop(); runnable.run(); } }
'spring' 카테고리의 다른 글
aspect bofore 관련 (0) | 2016.07.01 |
---|---|
sessionFactory annotatedClasses/packagesToScan 방식 (0) | 2015.07.27 |
스프링 관련 문서 (0) | 2015.03.05 |
스프링 버전 변경시 에러 사항(3.1.1->3.2.1) (0) | 2015.03.03 |
s:message 태그 설명 (0) | 2014.09.25 |