Ошибка при подключении к БД Oracle

По примеру https://javarush.ru/groups/posts/2251-znakomstvo-s-maven-spring-mysql-hibernate-i-pervoe-crud-prilozhenie-chastjh-3 пытаюсь написать простое веб приложение. Настраиваю подключение к БД Oracle, но выдает ошибку

Caused by: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188) at org.apache.tomcat.dbcp.dbcp2.DriverFactory.createDriver(DriverFactory.java:49) ... 119 more

Как я понимаю он не может найти драйвер для подключения. драйвер jdbc версии ojdbc6.jar я добавил в проект. Вроде для моей версии Oracle 11g.2 она подходит.

Файл db.properties

jdbc.driverClassName=oracle.jdbc.driver.OracleDriver jdbc.url=jdbc:oracle:thin:@10.10.5.120:1521:mydb jdbc.username=user1 jdbc.password=pass1

hibernate.dialect=org.hibernate.dialect.Oracle8iDialect hibernate.show_sql=true

Класс HibernateConfig

@Configuration
@ComponentScan(basePackages = "test")
@EnableTransactionManagement
@PropertySource(value = "classpath:db.properties")
public class HibernateConfig {

    private Environment environment;

    @Autowired
    public void setEnvironment(Environment environment) {
        this.environment = environment;
    }

    private Properties hibernateProperties() {
        Properties properties = new Properties();
        properties.put("hibernate.dialect", environment.getRequiredProperty("hibernate.dialect"));
        properties.put("hibernate.show_sql", environment.getRequiredProperty("hibernate.show_sql"));
        return properties;
    }

    @Bean
    public DataSource dataSource() {
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName(environment.getRequiredProperty("jdbc.driverClassName"));
        dataSource.setUrl(environment.getRequiredProperty("jdbc.url"));
        dataSource.setUsername(environment.getRequiredProperty("jdbc.username"));
        dataSource.setPassword(environment.getRequiredProperty("jdbc.password"));
        return dataSource;
    }

    @Bean
    public LocalSessionFactoryBean sessionFactory() {
        LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
        sessionFactory.setDataSource(dataSource());
        sessionFactory.setPackagesToScan("test.model");
        sessionFactory.setHibernateProperties(hibernateProperties());
        return sessionFactory;
    }

    @Bean
    public HibernateTransactionManager transactionManager() {
        HibernateTransactionManager transactionManager = new HibernateTransactionManager();
        transactionManager.setSessionFactory(sessionFactory().getObject());
        return transactionManager;
    }
}

PatientController

@Controller
public class PatientController {

    private PatientService patientService;

    @Autowired
    public void setPatientService(PatientService patientService) {
        this.patientService = patientService;
    }

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public ModelAndView allPats() {
        List<Patient> list = patientService.allPatients();
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("patients");
        modelAndView.addObject("patientsList", list);
        return modelAndView;
    }

    @RequestMapping(value = "/edit", method = RequestMethod.GET)
    public ModelAndView editPatient() {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("editPatient");
        return modelAndView;
    }

}

Если по-старому без спрингов, hibernate и т.д. делать то работает вот так:

db.properties

db.host = jdbc:oracle:thin:@10.10.5.120:1521:mydb
db.user = user1
db.password = pass1

Класс для коннекта к БД

public class DBConnection {
    public static Connection getConnection() throws SQLException, IOException {
        Properties properties = new Properties();

        try (InputStream in = Files.newInputStream(Paths.get("db.properties"))) {
            properties.load(in);
        }

        String host = properties.getProperty("db.host");
        String user = properties.getProperty("db.user");
        String pass = properties.getProperty("db.password");

        return DriverManager.getConnection(host, user, pass);
    }
}

И дальше я могу без проблем работать с БД.

введите сюда описание изображения


Ответы (0 шт):