Исправление ошибки, которая возникла при использовании JdbcTemplate.query():
Цитата
The type org.springframework.jdbc.support.JdbcAccessor cannot be resolved. It is indirectly referenced from required .class files
С данной ошибкой столкнулся при создании своего первого приложения со spring, где была работа с базой данных. В проекте использовался maven и соответственно spring jdbc для pom.xml взял сайта. На сайте в тот момент предлагалась такая схема:
Код
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jdbc</artifactId>
<version>1.0.0.M3</version>
</dependency>
</dependencies><repositories>
<repository>
<id>spring-libs-milestone</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
Оказалось, что в новых версиях jdbc убрали из spring и возможно на что-то заменили даже не знаю, но при выполнении любого запроса требовалась JdbcAccessor, который не было в той версии, которая предлагалась на сайте. Я несколько часов поискал нужную версию в Интернете, но результатов не было. Проблема была использованием старой версии spring jdbc
Код
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.3.2.RELEASE</version>
</dependency>
Еще может быть ошибка, скорее всего даже до той которую я описал выше, но текст ошибки я не помню, но вам точно так же скажут, что не хватает зависимостей. Возможно речь идет о spring dao, а именно о каком-то Exception, который нужен jdbcTemplate.query(). Решается подключением:
Код
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-dao</artifactId>
<version>2.0.8</version>
</dependency>
Кстати странно, что все примеры в интернете, которые я видел пока изучал работу с базами данных через spring jdbc, ни у кого из авторов не было тех проблем, что были у меня тут. Хотя, они использовали более старые версии spring и возможно там все это еще было включено в одну библиотеку jdbc. Сейчас скорее всего их разделили, но зачем не понятно.