Невозможно сохранить запись / данные в базу данных SQLite с помощью jdbc: sqlite :: resource: - PullRequest
0 голосов
/ 25 ноября 2018

Я создал базу данных с помощью SQLITEStudio и сохранил ее в папке своего проекта.Имя базы данных - ThirftersDataBase.db с таблицей accHistory и столбцами «пользователь» и «пароль».Соединение работает, когда я использую запрос Select, но когда я пытаюсь вставить данные, оно не работает.Пожалуйста помоги.

Это мой класс базы данных.

package db.Util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;



public class databaseConnection {

    static Connection con = getConnection();
    static String user;

    public static Connection getConnection(){
        String url = "jdbc:sqlite::resource:ThirftersDataBase.db";
        try {
            con = DriverManager.getConnection(url);
            System.out.println("connected");
            return con;
        } catch (SQLException e) {

            e.printStackTrace();
        }
        return null;
    }

    public void logIN(String user, String pass) {

        String sql = "Insert or replace into accHistory(user, password) VALUES (?, ?)";
        PreparedStatement st;

        try {
            st = con.prepareStatement(sql);
            st.setString(1, user);
            st.setString(2, pass);
            st.executeUpdate();


            //Check if query is executed;
            System.out.println("Saved");
        } catch (SQLException e) {
            e.printStackTrace();
        }

    }
}

И у меня есть контроллер FXML с кнопкой, которая будет сохранять данные при нажатии.

public class ThriftersController{

    databaseConnection connect = new databaseConnection();

    public void Save(ActionEvent e) {
         //Save "Mark" to user column and save "1234456" to password column
        connect.logIN("Mark", "1234456");
    }
}

Событие кнопкиотлично обрабатывается, когда я нажимаю кнопку. Она напечатает «Сохранено», но не сохранит в моей базе данных.

1 Ответ

0 голосов
/ 25 ноября 2018

Соединения с базой данных через jdbc:sqlite::resource: доступны только для чтения, как задокументировано здесь :

Чтение файлов базы данных в classpath или в сети (только для чтения)

Чтобы загрузить файлы БД, которые можно найти из загрузчика классов (например, файлы БД внутри файла JAR в пути к классам), используйте префикс jdbc:sqlite::resource:.

You 'Вам нужно будет поместить вашу базу данных в другое место, если вы хотите обновить ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...