У меня была эта точная проблема при разработке приложения Spring Boot в STS, но в конечном итоге развертывание упакованной войны в WebSphere (v.9). Основываясь на предыдущих ответах, моя ситуация была уникальной. ojdbc8.jar был в моей папке WEB-INF / lib с установленным набором родительского последнего класса, но всегда говорит, что не удалось найти подходящий драйвер.
Моя последняя проблема заключалась в том, что я использовал неправильный класс DataSource потому что я просто следил за онлайн-учебниками / примерами. Нашел подсказку благодаря тому, что Дэвид Дай прокомментировал свой собственный вопрос: Spring JDBC Не удалось загрузить класс драйвера JDBC [oracle.jdbc.driver.OracleDriver]
Также позже был найден весенний гуру пример с конкретным драйвером Oracle: https://springframework.guru/configuring-spring-boot-for-oracle/
Пример, который вызывает ошибку, используя org.springframework.jdbc.datasource.DriverManagerDataSource
на основе общих примеров .
@Config
@EnableTransactionManagement
public class appDataConfig {
\* Other Bean Defs *\
@Bean
public DataSource dataSource() {
// configure and return the necessary JDBC DataSource
DriverManagerDataSource dataSource = new DriverManagerDataSource("jdbc:oracle:thin:@//HOST:PORT/SID", "user", "password");
dataSource.setSchema("MY_SCHEMA");
return dataSource;
}
}
И исправленный exapmle с использованием oracle.jdbc.pool.OracleDataSource
:
@Config
@EnableTransactionManagement
public class appDataConfig {
/* Other Bean Defs */
@Bean
public DataSource dataSource() {
// configure and return the necessary JDBC DataSource
OracleDataSource datasource = null;
try {
datasource = new OracleDataSource();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
datasource.setURL("jdbc:oracle:thin:@//HOST:PORT/SID");
datasource.setUser("user");
datasource.setPassword("password");
return datasource;
}
}
Из Википедии:
Утверждается, что включение нулевого знака в IEEE 754 значительно упрощает достижение числовой точности в некоторых критических задачах [1], в частности при вычислении с комплексными элементарные функции [2].
Первая ссылка - «Отрывки филиалов для сложных элементарных функций или много знака о знаке ничто» от W. Kahan, доступная для загрузки здесь .
Одним из примеров этой статьи является
1/(+0)
vs1/(-0)
. Здесь знак нуля имеет огромное значение, так как первое выражение равно+inf
, а второе --inf
.
Кроме того, Signed Zero Good For:
Нули можно рассматривать как вариант расширенной строки реального числа, так что 1 / -0 = -∞ и 1 / + 0 = + ∞, деление на ноль только неопределено для ± 0 / ± 0.
Отрицательно подписанный нуль эхоизменяет концепцию математического анализа приближения к 0 снизу как односторонний предел, который можно обозначить через x → 0-, x → 0-, или x → ↑ 0. Обозначение «-0» может использоваться неофициально, чтобы обозначить небольшое отрицательное число, округленное до нуля. Концепция отрицательного нуля также имеет некоторые теоретические применения в статистической механике и других дисциплинах
Отрицательный ноль имеет, например, некоторое использование при обработке сложных чисел ...
В повседневном использовании следует избегать отрицательного нуля.
Некоторые ссылки с информацией о фоновой / пользе / ловушки «отрицательного нуля»:
Я делаю измерительное приложение, а -0 очень полезно для смешанных чисел (например, разделение на ноги и дюймы).
Представьте, что мы имеем переменную длину,
(Это java-код, но та же идея верна для C ++).
feet = Math.signum(length) * Math.floor(Math.abs(length / 12));
// could also do feet = length>0 ? Math.floor(length / 12) : Math.ceil(length / 12)
inches = Math.abs(length) % 12;
Если длина равна между -1 футами и 0 футами, мы хотели бы, чтобы он сказал -0 для ног, поэтому мы знаем, что это отрицательно.