Я пытаюсь создать простое Java-приложение для своего школьного проекта и хочу иметь возможность использовать простую БД, чтобы вставлять, обновлять, удалять и задавать запросы в моей БД.
Мне нужно, чтобы мое приложение запускалось везде при установке, поэтому я хочу использовать локальную БД, которая поставляется с моим приложением и будет доступна внутри проекта без различных зависимостей БД.
как лучше всего реализовать локальную БД?
Я подумал об использовании JDBC для файлов .csv, что требует много работы (?) или использовать HSQLDB и создать встроенную БД?
как бы вы это реализовали?
Обновлено:
ок, отлично, я немного почитал и нашел этот Учебник по SQLite,
public class Main {
public static void main(String[] args) {
try{
Connection conn = DriverManager.getConnection("jdbc:sqlite: (how to set this path?)");
Statement statement = conn.createStatement();
statement.execute("CREATE TABLE CUSTOMERS (name TEXT,phone INTEGER,email TEXT)");
} catch(SQLException el){
System.out.println("somting went wrong" + el.getMessage());
}
}
}
теперь я хочу установить относительный путь к пользовательской папке и установить соединение на пользовательском компьютере. Я заметил, что написано:
o connect to an in-memory database, you use the following connection string:
jdbc:sqLite::memory
Итак, после установки первого соединения с моей стороны будет инициализирована БД, а затем я должен использовать путь памяти при развертывании проекта?
Использовать встроенную базу данных: dzone.com/articles/3-java-встраиваемые базы данных
--пожалуйста, смотрите отредактированную версию
Если вы готовы принять JDBC в качестве своего API, используйте настоящую встроенную базу данных: hsqldb или h2 (или derby). Это будет намного проще, чем оборачивать файлы csv.
Я бы использовал H2, так как он может работать в гибридном встроенном/серверном режиме, что позволит вам запускать ваше приложение во встроенном режиме, в то же время используя какой-то внешний инструмент (eclipse/intellij/netbeans/что-то еще) для проверки ваша база данных.
Если вы можете жить с дополнительным обучением, используйте h2 + JPA (например, eclipselink), это — наряду с автоматической генерацией схемы — упростит развертывание (вам не нужно будет писать/обслуживать/запускать DDL).
JDBC — это простой интерфейс, позволяющий подключаться к встроенной базе данных Java. С HSQLDB у вас есть возможность использовать файлы CSV для хранения данных, а также файл сценария в формате SQL или файл двоичных данных.
HSQLDB может работать в гибридном встроенном/серверном режиме, чтобы вы могли получить доступ к базе данных с помощью внешних инструментов.
Этому вопросу действительно не место здесь, так как это вопрос мнения. Изучите встроенные базы данных и выберите ту, которая лучше всего подходит для ваших нужд. Лично я бы выбрал SQLite.