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 |
Spring.zip



