Есть некоторые вещи, которые можно улучшить ...
Во-первых, я рекомендую вам использовать SPRING DATA, вы можете использовать EntityManager и получить соединение с этим:
@PersistenceContext
private EntityManager entityManager;
public void method() {
... entityManager.unwrap(Session.class) ...
}
Для получения дополнительной информации: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/
Для использования данных пружины с пружинной загрузкой просто используйте:
@SpringBootApplication
@EntityScan(basePackages = {
"com.your.project"
})
@EnableJpaRepositories(basePackages = {
"com.your.project"
})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Во-вторых, если вы действительно хотите использовать JDBC, я надеюсь, что вы используете JAVA 7 /+
В этом случае сначала используйте try-with-resources, это автоматически закроет соединение.
Что-то вроде:
try (Connection sqlConnection = DriverManager.getConnection(url, user, pass);
PreparedStatement ps = sqlConnection.createPreparedStatement(sql);
ResultSet rs = ps.executeQuery()) {
// process the resultset here, all resources will be cleaned up
} catch (SQLException e) {
log.error(e.getMessage());
}
}
Для получения дополнительной информации: Как мне использовать try-with-resources с JDBC?
И Class.forName (драйвер); Больше не нужно.В Java 6+ DriverManager будет автоматически загружать драйверы, найденные в пути к классам.Для получения дополнительной информации: Зачем мне явно писать Class.forName () при использовании JDK 8?
Наконец, если вы действительно не хотите использовать настройки Spring, вы неесть причина использовать application.properties.Вы можете использовать константы, которые будут статическими и окончательными.
PS: Помните, что вы должны закрыть все ResultSet и PreparedStatement, а не просто соединение в качестве меры предосторожности.