Доступ к SQLite в Java Webapp

#java #sqlite

#java #sqlite

Вопрос:

Я пытаюсь получить доступ к файлу sqlite.db в моем Java web app. я могу получить к нему доступ по абсолютному пути, но теперь я хочу получить к нему доступ по относительному пути моего веб-приложения. Мой context.xml выглядит как

 <Context antiJARLocking="true" path="/webappServer">
    <Resource name="jdbc/myDB" auth="Container" 
    type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="1000"
    driverClassName="org.sqlite.JDBC"
    url="jdbc:sqlite:/db/sqlite.db" />
</Context>
  

и я вызываю соединение в моем классе Java

 Context initContext = new InitialContext();
Context envContext  = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/myDB");
Connection conn = ds.getConnection();
  

мое местоположение sqlite находится в C:dbsqlite.db но теперь я хочу переместить его, чтобы я мог вызвать свое соединение с sqlite с помощью чего-то вроде localhost/ mysqlite.db
возможно ли это? что я должен сделать, чтобы достичь этого?

Спасибо!

PS Я новичок в Java web app. так что любая помощь будет очень полезна

Ответ №1:

Существует 2 разных способа сделать это:

  1. Определите источник данных за пределами вашего webapps Context.xml внутри собственного Tomcat Context.xml и измените его в соответствии с потребностями разных серверов. Требуется единовременная настройка на каждом сервере.
  2. Решите проблему во время процесса сборки. Создайте разные Context.xml файлы для всех необходимых вам сред, например Context_prod.xml . В процессе сборки определите нужный вам файл и поместите его в свое веб-приложение.

Это 2 подхода, о которых я знаю.

Комментарии:

1. Извините за мое невежество. Но как создать разные context.xml ? и как объявить URL-адрес? можете ли вы привести мне какой-нибудь пример? Спасибо 🙂

2. @jlianto: 1) вам просто нужно создавать разные Context.xml файлы с помощью простого редактора или IDE по вашему выбору. 2) Определение URL-адреса вашей базы данных sqllite зависит от вашего драйвера (например zentus.com/sqlitejdbc ) и должны быть указаны «где-то» в документации поставщиков.