Java, как правильно использовать SQLite - PullRequest
0 голосов
/ 25 февраля 2019

У меня проблема с использованием этой базы данных (SQLite), главная проблема в том, что я всегда получаю сообщение об ошибке "база данных заблокирована". Я думаю, что я не знаю, как правильно использовать это в методе и выполнять что-то вроде вставки, обновления или удаления данных..

сначала на методе мой код выглядит следующим образом.

это метод

public void PatEncounterMonthly(){
    try{
        String sql = "Select [Month/Year],Patient_Encounter from Date_Encounter ORDER by ID desc";
        pst = conn.prepareStatement(sql);
        rs = pst.executeQuery();
        jTable6.setModel(DbUtils.resultSetToTableModel(rs));
    }catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
        e.printStackTrace();
    }finally {
        try {
           rs.close();
           pst.close();
        }catch(Exception e){

        }
    }
}

Я также исследую, как правильно закрыть соединение и пробую всено я получил ошибку типа nullpointerexception

public void PatEncounterMonthly(){
    try{
        String sql = "Select [Month/Year],Patient_Encounter from Date_Encounter ORDER by ID desc";
        pst = conn.prepareStatement(sql);
        rs = pst.executeQuery();
        jTable6.setModel(DbUtils.resultSetToTableModel(rs));
    }catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
        e.printStackTrace();
    }finally {
        try {
           if (rs != null) {
            try {
                rs.close();
            } catch (Exception e) {

            }
        }
        if (pst != null) {
            try {
                pst.close();
            } catch (Exception e) { 

            }
        }
        if (conn != null) {
            try {
                conn.close();
            }catch(Exception e) {

            }
        }
        }catch(Exception e){

        }
    }
}

, когда я использую второй код для одного метода, я получил ошибку nullpointerexception.

Также при вставке / обновлении / удалении данных, подобных этой

 LoginForm LF = new LoginForm();
            String add1 = LF.jTextField1.getText();
            String add2 = jTextField1.getText();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            String Date = (sdf.format(new java.util.Date()));
            try{
                String sql1 = "Insert into Activity_Log (User_ID,Activity,Log_Date) values ((Select ID from User_Table where UserName = ?),?,?)";
                    pst = conn.prepareStatement(sql1);
                    pst.setString(1, add1);
                    pst.setString(2, "Update Patient ID "+add2);
                    pst.setString(3, Date);

                pst.execute();
            }catch(Exception e){
                JOptionPane.showMessageDialog(null, e);
            }finally{
                try{
                    rs.close();
                    pst.close();
                }catch(Exception e){

                }
            }

я должен поменять блок all finally на

   finally {
        try {
           if (rs != null) {
            try {
                rs.close();
            } catch (Exception e) {

            }
        }
        if (pst != null) {
            try {
                pst.close();
            } catch (Exception e) { 

            }
        }
        if (conn != null) {
            try {
                conn.close();
            }catch(Exception e) {

            }
        }

Может кто-нибудь узнать мою ошибку и исправить ее

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