首页 > 解决方案 > 连接到远程 Mysql 数据库关闭

问题描述

我在本地机器上创建了一个 java 应用程序,它连接到远程 MySQL 数据库,当我在 localhost 上运行时它工作正常,但是在几秒钟后没有交互的远程连接上它正在失去连接并带来

连接关闭后不允许操作。

com.mysql.jdbc.exceptions.jdbc4.MySQL.NonTransientConnectionException:连接关闭后不允许操作。

我试图从我的代码中删除 con.close 但仍然相同。

在关闭应用程序之前,如何保持连接有效?

    private void jButton18ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton18ActionPerformed
    // TODO add your handling code here:

    String stkidreq = txtserchreq.getText();
    String pool = lblpool.getText();
    String dform = ((JTextField) jdaterfrom.getDateEditor().getUiComponent()).getText();
    String dto = ((JTextField) jdaterto.getDateEditor().getUiComponent()).getText();
    String rstatus = cmbstatus.getSelectedItem().toString();
    String exdate = ((JTextField) jdaterfrom.getDateEditor().getUiComponent()).getText();

    ((DefaultTableModel) tblreq.getModel()).setRowCount(0);

    DefaultTableModel model = (DefaultTableModel) tblreq.getModel();

    try {
        Class.forName("com.mysql.jdbc.Driver");
        java.sql.Connection conn2 = DriverManager.getConnection("jdbc:mysql://so /so n so", "so so", "");
        Statement st = conn2.createStatement();
        String query = " select  r.request_id, r.shareholder_id, s.username, s.shareholder_fname, s.shareholder_lname, s.shareholder_phone, r.request_date, r.request_amount, r.pool, r.notes, r.req_status from requests r, shareholder s, saving_pool p where  r.shareholder_id = '" + stkidreq + "' and s.shareholder_id = '" + stkidreq + "' and p.Pool_name = '" + pool + "' and s.pool = '" + pool + "' and s.shareholder_id = r.shareholder_id and (r.request_date between '" + dform + "' and '" + dto + "') and r.req_status = '" + rstatus + "' order by r.request_date asc ";
        ResultSet rs = st.executeQuery(query);

        while (rs.next()) {
            String request_id = rs.getString("request_id");
            String shareholder_id = rs.getString("shareholder_id");
            String username = rs.getString("username");
            String shareholder_fname = rs.getString("shareholder_fname");
            String shareholder_lname = rs.getString("shareholder_lname");
            String shareholder_phone = rs.getString("shareholder_phone");
            String request_date = rs.getString("request_date");

            String request_amount = rs.getString("request_amount");
            String pool3 = rs.getString("pool");
            String notes = rs.getString("request_date");
            String req_status = rs.getString("req_status");

            model.addRow(new Object[]{request_id, shareholder_id, username, shareholder_fname, shareholder_lname, shareholder_phone, request_date, request_amount, pool3, notes, req_status});
        }
        rs.close();
        st.close();
        conn2.close();

    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e.getMessage());

    }
}

标签: javamysql

解决方案


推荐阅读