Java如何正确使用SQLite

时间:2019-02-25 04:57:55

标签: java database sqlite

我在使用此数据库(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){

                }
            }

我应该更改所有的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) {

            }
        }

有人可以知道我的错误并可以解决吗

0 个答案:

没有答案