Есть две точки:
Во-первых: MS Access действительно худший выбор в качестве базы данных для веб-Java заявление.
MS Access - это настольная база данных, не предназначенная для использования на стороне сервера. Мост JDBC-ODBC никогда не предназначался для использования в производстве и был удален на Java 8. Альтернативный драйвер Ucanaccess хорош для сценариев обмена данными с базой данных MS Access, но использует чистую базу данных Java (HSQLDB) в качестве буфера и чтобы избежать использования исходного Jet Engine. Это само по себе является кошмаром исполнения.
Итак, вы должны рассмотреть возможность использования другой базы данных для своего веб-приложения. Существует множество альтернатив, таких как SQLite, Apache Derby или H2 в качестве встроенных механизмов баз данных или MySQL, PostgreSQL в качестве систем баз данных клиент-сервер. Все с поддержкой JDBC с поддержкой JDBC.
Второе: путь к базе данных или соединение не должны быть жестко закодированы внутри вашего веб-приложения. Необходимо настроить именованный источник данных на сервере приложений (например, Tomcat). И внутри вашего веб-приложения вы можете получить доступ к источнику данных через JNDI.
Пример: Настройка соединения с базой данных завода в Tomcat:
<Context ...>
...
<Resource name="jdbc/EmployeeDB"
auth="Container"
type="javax.sql.DataSource"
username="dbusername"
password="dbpassword"
driverClassName="org.hsql.jdbcDriver"
url="jdbc:HypersonicSQL:database"
maxActive="8"
maxIdle="4"/>
...
</Context>
Пример: Доступ источника данных с помощью JNDI:
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)
envCtx.lookup("jdbc/EmployeeDB");
Connection conn = ds.getConnection();
... use this connection to access the database ...
conn.close();
примеры являются частью Tomcat documentation.
benifit - веб-приложение знает только имя логической базы данных. У вас может быть несколько установок Tomcat, например. один для тестирования с тестовой базой данных и одним продуктом. Вы можете использовать один и тот же файл WAR для обеих установок. Каждый Tomcat должен быть настроен только один раз.
Не могу я получить его из класса Java? My conection в классе Java Я не могу использовать getServletContext(). GetRealPath ("/ yourFileName") – user3628479
Я отредактировал ответ для нормального класса java. – RahulO
Благодарю вас, но, опять же, это делает только путь Godammit внутри пасти tomcat: '( – user3628479