Setup a DBCP datasource for H2 Database connections
import javax.sql.DataSource;
import java.util.Properties; public class SetupDataSource { public static final String DRIVER_CLASS_NAME = "org.h2.Driver"; public static DataSource setup(Properties dbProperties) {
// load driver class -- just to be sure...
try {
Class.forName(DRIVER_CLASS_NAME);
} catch (ClassNotFoundException e) {
Logger.getLogger(AppConfigurator.class).warn(e);
} // seehttp://commons.apache.org/dbcp/configuration.html
BasicDataSource dataSource = new BasicDataSource();
dataSource.setUsername(dbProperties.getProperty("dbuser"));
//dataSource.setPassword(password);
dataSource.setDriverClassName(DRIVER_CLASS_NAME);
dataSource.setUrl("jdbc:h2:file:" + dbProperties.getProperty("dbfile"));
final int maxConnections = Integer.parseInt(dbProperties.getProperty("maxConnections"));
dataSource.setMaxActive(maxConnections);
dataSource.setMinIdle(1);
if(maxConnections>20)
dataSource.setMaxIdle(20);
dataSource.setMaxWait(20);
// dataSource.setValidationQuery("SELECT 1 FROM dual");
// dataSource.setTestOnBorrow(true);
dataSource.setTimeBetweenEvictionRunsMillis(5 * 60 * 1000); return dataSource;
} public static void main(String[] args) {
Properties dbProperties = new Properties();
dbProperties.setProperty("dbuser", "sa");
dbProperties.setProperty("dbfile", "/location/of/your/datafile");
dbProperties.setProperty("maxConnections", "100"); DataSource dataSource = setup(dbProperties);
}
}