java - 连接到远程 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());
}
}
解决方案
推荐阅读
- javascript - 显示在 jQuery UI Datepicker 中突出显示的最小和最大日期
- jquery - scrollTop 在 iframe 中时不起作用
- c# - 如何以编程方式将任务添加到特定的 Outlook 存储
- julia - Julia:抽象类型的覆盖函数没有被调用
- django - 如何仅使用社交媒体身份验证但也仅通过管理员用户邀请对新用户进行身份验证?
- java - 单击项目后如何关闭回收站视图持有者?
- arduino - 无法获得柔性传感器的恒定值
- netlogo - 在 Netogo 上创建游戏 Snake
- python - 为什么我的 Miller-Rabin 算法实现无法检测到某些素数?
- android - 获取文件的访问时间