Я использую файл activejdbc.properties, чтобы указать расположение моих значений database.properties.
activejdbc.properties
env.connections.file=/opt/apps/conf/database.properties
база данных.properties (находится на сервере)
development.driver=oracle.jdbc.OracleDriver
development.username=myusername
development.password=mypassword
development.url=jdbc:oracle:thin:@//dburl:1521/testdb.world
Сейчас я пытаюсь использовать пул соединений.Я рассмотрел ваш пример, как это сделать, однако я не совсем понимаю, как получить значения свойств моей базы данных, чтобы помочь создать пул соединений.
Вот ваш пример:
public void shouldUseConnectionFromPool() throws PropertyVetoException, SQLException, ClassNotFoundException {
Class.forName(driver());
DataSource dataSourceUnpooled = DataSources.unpooledDataSource(url(), user(), password());
DataSource dataSourcePooled = DataSources.pooledDataSource(dataSourceUnpooled); //init the connection pool
Base.open(dataSourcePooled); //get connection from pool
Person.deleteAll(); //clean DB before test
Person.createIt("name", "Matt", "last_name", "Diamont", "dob", "1962-01-01");
a(Person.findAll().size()).shouldBeEqual(1);
Person.deleteAll();//clean DB after test
Base.close();// really connection goes back to pool
DataSources.destroy(dataSourcePooled);//shut down the pool
}
А вот и мой.Я использую JavaSpark и пытаюсь определить свой пул в main (), когда сервер запускается.
public static void main(String[] clargs) {
try {
DataSource dataSourceUnpooled = DataSources.unpooledDataSource("jdbc:oracle:thin:@//dburl:1521/testdb.world", "myusername", "mypassword");
dataSourcePooled = DataSources.pooledDataSource(dataSourceUnpooled); //init the connection pool
} catch (SQLException e1) {
e1.printStackTrace();
}
before("/*", (req, res) -> {
if (!Base.hasConnection()) {
System.out.println("Database Connection OPEN.");
Base.open(dataSourcePooled); //get connection from pool ;
}
}
after("/*", (req, res) -> {
Base.close(); // really connection goes back to pool
});
get("/exit", (req,res)->{
if (Base.hasConnection()) {
Base.close(); // really connection goes back to pool
}
DataSources.destroy(dataSourcePooled); //shut down the pool
System.exit(0);
return "Application shutdown";
});
}
Итак, теперь я пытаюсь удалить жестко закодированные значения свойств и использовать то, что установлено в моих файлах.Я вижу, что вы используете url () и т. Д., Но не уверены, что это частный метод, который вы создали для своих тестов.Итак, мой вопрос: есть ли простой способ использовать URL, ИМЯ ПОЛЬЗОВАТЕЛЯ, ПАРОЛЬ и т. Д. Из того, что извлечено ActiveJDBC, или мне нужно просто прочитать файл на сервере и вручную извлечь его?