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 클래스를 만들어서 사용하게 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | 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 |